Index: subversion/tests/cmdline/basic_tests.py
==================================================================--- subversion/tests/cmdline/basic_tests.py	(revision 38504)
+++ subversion/tests/cmdline/basic_tests.py	(arbetskopia)
@@ -198,7 +198,8 @@
   # 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/xx",
+    ["Skipped '"+xx_path+"'\nSummary of conflicts:\n  Skipped paths: 1\n"], [],
     'update', xx_path)
   exit_code, out, err = svntest.actions.run_and_verify_svn(
     "update xx/xx", [], [],
Index: subversion/svn/merge-cmd.c
==================================================================--- subversion/svn/merge-cmd.c	(revision 38504)
+++ subversion/svn/merge-cmd.c	(arbetskopia)
@@ -340,6 +340,8 @@
                               pool);
     }

+  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 38504)
+++ 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 38504)
+++ subversion/svn/update-cmd.c	(arbetskopia)
@@ -88,10 +88,14 @@
       depth_is_sticky = FALSE;
     }

-  return svn_client_update3(NULL, targets,
+  SVN_ERR(svn_client_update3(NULL, targets,
                             &(opt_state->start_revision),
                             depth, depth_is_sticky,
                             opt_state->ignore_externals,
                             opt_state->force,
-                            ctx, pool);
+                            ctx, pool));
+
+  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 38504)
+++ subversion/svn/switch-cmd.c	(arbetskopia)
@@ -161,8 +161,12 @@
     }

   /* Do the 'switch' update. */
-  return svn_client_switch2(NULL, target, switch_url, &peg_revision,
+  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);
+                            opt_state->force, ctx, pool));
+
+  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 38504)
+++ 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,27 +447,15 @@
           }
       }

-      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:

