-@@ -80,13 +80,12 @@ static int skip_file(char *fname, struct
- if (always_checksum && S_ISREG(st->st_mode)) {
- char sum[MD4_SUM_LENGTH];
- char fnamecmpdest[MAXPATHLEN];
-+ int i;
-
-- if (compare_dest != NULL) {
-- if (access(fname, 0) != 0) {
-- pathjoin(fnamecmpdest, sizeof fnamecmpdest,
-- compare_dest, fname);
-- fname = fnamecmpdest;
-- }
-+ for (i = 0; compare_dest[i] != NULL && access(fname, 0) < 0; i++) {
-+ pathjoin(fnamecmpdest, sizeof fnamecmpdest,
-+ compare_dest[i], fname);
-+ fname = fnamecmpdest;
- }
- file_checksum(fname,sum,st->st_size);
- return memcmp(sum, file->u.sum, protocol_version < 21 ? 2
-@@ -422,11 +421,18 @@ static void recv_generator(char *fname,