diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
-@@ -468,7 +468,9 @@ static int fattr_find(struct file_struct *f, char *fname)
+@@ -467,7 +467,9 @@ static int fattr_find(struct file_struct *f, char *fname)
continue;
}
}
diff = u_strcmp(fmid->basename, f->basename);
if (diff == 0) {
good_match = mid;
-@@ -1982,6 +1984,21 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1991,6 +1993,21 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
fnamecmp = partialptr;
fnamecmp_type = FNAMECMP_PARTIAL_DIR;
statret = 0;
-+ if (detect_renamed > 1 && unchanged_file(fnamecmp, file, &sx.st)) {
++ if (detect_renamed > 1 && quick_check_ok(FT_REG, fnamecmp, file, &sx.st)) {
+ /* Adopt the partial file. */
+ finish_transfer(fname, fnamecmp, NULL, NULL, file, 1, 1);
+ handle_partial_dir(partialptr, PDIR_DELETE);
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -734,7 +734,9 @@ static struct poptOption long_options[] = {
+@@ -744,7 +744,9 @@ static struct poptOption long_options[] = {
{"compare-dest", 0, POPT_ARG_STRING, 0, OPT_COMPARE_DEST, 0, 0 },
{"copy-dest", 0, POPT_ARG_STRING, 0, OPT_COPY_DEST, 0, 0 },
{"link-dest", 0, POPT_ARG_STRING, 0, OPT_LINK_DEST, 0, 0 },
{"fuzzy", 'y', POPT_ARG_NONE, 0, 'y', 0, 0 },
{"no-fuzzy", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
{"no-y", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
-@@ -2763,8 +2765,14 @@ void server_options(char **args, int *argc_p)
+@@ -2838,8 +2840,14 @@ void server_options(char **args, int *argc_p)
args[ac++] = "--super";
if (size_only)
args[ac++] = "--size-only";
diff --git a/rsync.1.md b/rsync.1.md
--- a/rsync.1.md
+++ b/rsync.1.md
-@@ -422,6 +422,8 @@ detailed description below for a complete description.
+@@ -508,6 +508,8 @@ has its own detailed description later in this manpage.
--temp-dir=DIR, -T create temporary files in directory DIR
--fuzzy, -y find similar file for basis if no dest file
--detect-renamed try to find renamed files to speed the xfer
--compare-dest=DIR also compare destination files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-@@ -2264,6 +2266,17 @@ your home directory (remove the '=' for that).
+@@ -2652,6 +2654,20 @@ expand it.
otential alternate-basis files will be removed as the transfer progresses.
- This option conflicts with `--inplace` and `--append`.
+ This option conflicts with [`--inplace`](#opt) and [`--append`](#opt).
-+0. ``--detect-renamed-lax` This version of `--detect-renamed` makes rsync
-+ hard-link `dest/D` to `dest/S` without verifying that `src/S` and
-+ `dest/S` have the same data. This poses a significant risk of corrupting
-+ the destination by representing a new source file by an unrelated
-+ destination file that coincidentally passes the quick check with the source
-+ file. Use this option only if you accept the risk and disk I/O is a
-+ bottleneck.
++0. `--detect-renamed-lax`
+
-+0. ``--detect-moved`` A less risky variant of `--detect-renamed-lax` that only
-+ uses a destination file that has the same basename as the new source file.
++ This version of [`--detect-renamed`](#opt) makes rsync hard-link `dest/D`
++ to `dest/S` without verifying that `src/S` and `dest/S` have the same data.
++ This poses a significant risk of corrupting the destination by representing
++ a new source file by an unrelated destination file that coincidentally
++ passes the quick check with the source file. Use this option only if you
++ accept the risk and disk I/O is a bottleneck.
++
++0. `--detect-moved`
++
++ A less risky variant of [`--detect-renamed-lax`](#opt) that only uses a
++ destination file that has the same basename as the new source file.
+
0. `--compare-dest=DIR`