I'll attach a shell script demonstrating this bug. First, here's the recipe in prose: 1. Create a repository /trunk, /branches, /branches/branchA, and /branches/branchB. Both branches were branched from trunk, but that doesn't matter for this recipe. 2. Check out a working copy of branchA. In that wc, create a subdir, and at least one file in the subdir. Run 'svn add' on the subdir, then commit. 3. Check out a working copy of branchB. In that wc, do 'svn merge -rX:Y http://.../branches/branchA', where Y is the revision committed in step 2 above, and X is Y - 1. 4. Commit the merge, producing revision Z. 5. Run 'svn log -v -rZ http://FULL_REPOS_URL/'. See the 'R'eplace operation mentioned in the log. It shouldn't be there. See about-to-be-attached script for details.