Index: subversion/libsvn_client/diff.c =================================================================== --- subversion/libsvn_client/diff.c (revision 20472) +++ subversion/libsvn_client/diff.c (working copy) @@ -1750,7 +1750,11 @@ rangelist = apr_array_make(pool, 0, sizeof(svn_merge_range_t *)); if (is_revert) - SVN_ERR(svn_rangelist_remove(&rangelist, ranges, rangelist, pool)); + { + ranges = svn_rangelist_dup(ranges, pool); + SVN_ERR(svn_rangelist_reverse(ranges, pool)); + SVN_ERR(svn_rangelist_remove(&rangelist, ranges, rangelist, pool)); + } else SVN_ERR(svn_rangelist_merge(&rangelist, rangelist, ranges, pool));