Index: subversion/libsvn_wc/tree_conflicts.c
===================================================================
--- subversion/libsvn_wc/tree_conflicts.c	(revision 39524)
+++ subversion/libsvn_wc/tree_conflicts.c	(working copy)
@@ -511,18 +511,79 @@
   /* Re-adding an existing tree conflict victim is an error. */
   SVN_ERR(svn_wc__get_tree_conflict(&existing_conflict, conflict->path,
                                     adm_access, pool));
-  if (existing_conflict != NULL)
-    return svn_error_createf(SVN_ERR_WC_CORRUPT, NULL,
-                             _("Attempt to add tree conflict that already "
-                               "exists at '%s'"),
-                             svn_path_local_style(conflict->path, pool));
+	if (existing_conflict != NULL) {
+	  char buffer [2500];
+	  // conflict struct defined in svn_wc.h, so are teh many enums that it contains.
+	  int n;
+	  n=sprintf (buffer, 
+	    " !! WARNING *existing* conflict "
+	    "Attempt to add tree conflict that already "
+	    "exists at '%s', conflict kind: %d, "
+	    "node kind: %d, property_name %s, "
+	    "reason: %d, "
+	    "base: %s, their: %s, mine: %s, merged: %s, "
+	    "operation: %d, base info: [%s %d %s %d], their info: [%s %d %s %d]",
+	    svn_path_local_style(existing_conflict->path, pool),
+	    existing_conflict->kind,
+	    existing_conflict->node_kind,
+	    existing_conflict->property_name,
+	    existing_conflict->reason,
+	    existing_conflict->base_file,
+	    existing_conflict->their_file,
+	    existing_conflict->my_file,
+	    existing_conflict->merged_file,
+	    existing_conflict->operation, 
+	    existing_conflict->src_left_version->repos_url,
+	    existing_conflict->src_left_version->peg_rev,
+	    existing_conflict->src_left_version->path_in_repos,
+	    existing_conflict->src_left_version->node_kind,
+	    existing_conflict->src_right_version->repos_url,
+	    existing_conflict->src_right_version->peg_rev,
+	    existing_conflict->src_right_version->path_in_repos,
+	    existing_conflict->src_right_version->node_kind);
+	    printf ("%s\n",buffer);
+	  svn_error_createf(SVN_ERR_WC_CORRUPT, NULL, buffer);
 
-  SVN_ERR(svn_wc__loggy_add_tree_conflict(&log_accum, conflict, adm_access,
+	  n=sprintf (buffer, 
+	    " !! WARNING *new*      conflict "
+	    "Attempt to add new tree conflict that is "
+	    "at         '%s', conflict kind: %d, "
+	    "node kind: %d, property_name %s, "
+	    "reason: %d, "
+	    "base: %s, their: %s, mine: %s, merged: %s, "
+	    "operation: %d, base info: [%s %d %s %d], their info: [%s %d %s %d]",
+	    svn_path_local_style(conflict->path, pool),
+	    conflict->kind,
+	    conflict->node_kind,
+	    conflict->property_name,
+	    conflict->reason,
+	    conflict->base_file,
+	    conflict->their_file,
+	    conflict->my_file,
+	    conflict->merged_file,
+	    conflict->operation, 
+	    conflict->src_left_version->repos_url,
+	    conflict->src_left_version->peg_rev,
+	    conflict->src_left_version->path_in_repos,
+	    conflict->src_left_version->node_kind,
+	    conflict->src_right_version->repos_url,
+	    conflict->src_right_version->peg_rev,
+	    conflict->src_right_version->path_in_repos,
+	    conflict->src_right_version->node_kind);
+	    printf ("%s\n",buffer);
+	  svn_error_createf(SVN_ERR_WC_CORRUPT, NULL, buffer);
+	  printf("\n\n");
+	  
+	  // by not returning but just erroring, we don't prevent the merge from continuing 
+	  // return svn_error_createf(SVN_ERR_WC_CORRUPT, NULL, buffer); Could there be hidden 
+	  // implications in doing this?
+	  return SVN_NO_ERROR;
+	} else {
+		SVN_ERR(svn_wc__loggy_add_tree_conflict(&log_accum, conflict, adm_access,
                                           pool));
-
-  SVN_ERR(svn_wc__write_log(adm_access, 0, log_accum, pool));
-  SVN_ERR(svn_wc__run_log(adm_access, NULL, pool));
-
+		SVN_ERR(svn_wc__write_log(adm_access, 0, log_accum, pool));
+		SVN_ERR(svn_wc__run_log(adm_access, NULL, pool));
+	}
   return SVN_NO_ERROR;
 }
 

