Index: subversion/tests/cmdline/basic_tests.py
==================================================================--- subversion/tests/cmdline/basic_tests.py	(revision 38639)
+++ subversion/tests/cmdline/basic_tests.py	(arbetskopia)
@@ -198,8 +198,10 @@
   # path, are skipped and do not raise an error
   xx_path = os.path.join(wc_dir, 'xx', 'xx')
   exit_code, out, err = svntest.actions.run_and_verify_svn(
-    "update xx/xx", ["Skipped '"+xx_path+"'\n"], [],
-    'update', xx_path)
+    "update xx/xx",
+    ["Skipped '"+xx_path+"'\n",
+    "Summary of conflicts:\n",
+    "  Skipped paths: 1\n"], [], 'update', xx_path)
   exit_code, out, err = svntest.actions.run_and_verify_svn(
     "update xx/xx", [], [],
     'update', '--quiet', xx_path)
@@ -208,7 +210,10 @@
   urls = ('http://localhost/a/b/c', 'http://localhost', 'svn://localhost')
   for url in urls:
     exit_code, out, err = svntest.actions.run_and_verify_svn(
-      "update " + url, ["Skipped '"+url+"'\n"], [],
+      "update " + url,
+      ["Skipped '"+url+"'\n",
+      "Summary of conflicts:\n",
+      "  Skipped paths: 1\n"], [],
       'update', url)

 #----------------------------------------------------------------------
Index: subversion/svn/merge-cmd.c
==================================================================--- subversion/svn/merge-cmd.c	(revision 38639)
+++ subversion/svn/merge-cmd.c	(arbetskopia)
@@ -340,6 +340,9 @@
                               pool);
     }

+  if (! opt_state->quiet)
+    SVN_ERR(svn_cl__print_conflict_stats(ctx->notify_baton2, pool));
+
   if (err && (! opt_state->reintegrate))
     return svn_cl__may_need_force(err);

Index: subversion/svn/cl.h
==================================================================--- subversion/svn/cl.h	(revision 38639)
+++ subversion/svn/cl.h	(arbetskopia)
@@ -537,6 +537,12 @@
                           svn_boolean_t suppress_final_line,
                           apr_pool_t *pool);

+/* Print conflict stats accumulated in NOTIFY_BATON.
+ * Return any error encountered during printing.
+ * Do all allocations in POOL.*/
+svn_error_t *
+svn_cl__print_conflict_stats(void *notify_baton, apr_pool_t *pool);
+
 
 /*** Log message callback stuffs. ***/

Index: subversion/svn/update-cmd.c
==================================================================--- subversion/svn/update-cmd.c	(revision 38639)
+++ subversion/svn/update-cmd.c	(arbetskopia)
@@ -88,10 +88,15 @@
       depth_is_sticky = FALSE;
     }

-  return svn_client_update3(NULL, targets,
-                            &(opt_state->start_revision),
-                            depth, depth_is_sticky,
-                            opt_state->ignore_externals,
-                            opt_state->force,
-                            ctx, pool);
+  SVN_ERR(svn_client_update3(NULL, targets,
+                             &(opt_state->start_revision),
+                             depth, depth_is_sticky,
+                             opt_state->ignore_externals,
+                             opt_state->force,
+                             ctx, pool));
+
+  if (! opt_state->quiet)
+    SVN_ERR(svn_cl__print_conflict_stats(ctx->notify_baton2, pool));
+
+  return SVN_NO_ERROR;
 }
Index: subversion/svn/switch-cmd.c
==================================================================--- subversion/svn/switch-cmd.c	(revision 38639)
+++ subversion/svn/switch-cmd.c	(arbetskopia)
@@ -161,8 +161,13 @@
     }

   /* Do the 'switch' update. */
-  return svn_client_switch2(NULL, target, switch_url, &peg_revision,
-                            &(opt_state->start_revision), depth,
-                            depth_is_sticky, opt_state->ignore_externals,
-                            opt_state->force, ctx, pool);
+  SVN_ERR(svn_client_switch2(NULL, target, switch_url, &peg_revision,
+                             &(opt_state->start_revision), depth,
+                             depth_is_sticky, opt_state->ignore_externals,
+                             opt_state->force, ctx, pool));
+
+  if (! opt_state->quiet)
+    SVN_ERR(svn_cl__print_conflict_stats(ctx->notify_baton2, pool));
+
+  return SVN_NO_ERROR;
 }
Index: subversion/svn/notify.c
==================================================================--- subversion/svn/notify.c	(revision 38639)
+++ subversion/svn/notify.c	(arbetskopia)
@@ -69,12 +69,10 @@
 };


-/* Print conflict stats accumulated in notify baton NB.
- * Return any error encountered during printing.
- * Do all allocations in POOL.*/
-static svn_error_t *
-print_conflict_stats(struct notify_baton *nb, apr_pool_t *pool)
+svn_error_t *
+svn_cl__print_conflict_stats(void *notify_baton, apr_pool_t *pool)
 {
+  struct notify_baton *nb = notify_baton;
   const char *header;
   unsigned int text_conflicts;
   unsigned int prop_conflicts;
@@ -449,29 +447,14 @@
           }
       }

-      if ((err = print_conflict_stats(nb, pool)))
-        goto print_error;
-
       if (nb->in_external)
         {
           nb->in_external = FALSE;
-          nb->ext_text_conflicts = nb->ext_prop_conflicts
-            = nb->ext_tree_conflicts = nb->ext_skipped_paths = 0;
           if ((err = svn_cmdline_printf(pool, "\n")))
             goto print_error;
         }
-      else
-          nb->text_conflicts = nb->prop_conflicts
-            = nb->tree_conflicts = nb->skipped_paths = 0;
       break;

-    case svn_wc_notify_merge_completed:
-        if ((err = print_conflict_stats(nb, pool)))
-          goto print_error;
-        nb->text_conflicts = nb->prop_conflicts
-          = nb->tree_conflicts = nb->skipped_paths = 0;
-        break;
-
     case svn_wc_notify_status_external:
       if ((err = svn_cmdline_printf
            (pool, _("\nPerforming status on external item at '%s'\n"),

