I created the following dirs and files: ################################################################### mkdir /tmp/src mkdir /tmp/dst mkdir /tmp/comp touch /tmp/src/test touch /tmp/comp/test ################################################################### Now, "test" has the same checksum, but different modification time. I use "--checksum" to ignore modification times and it works as expected: ################################################################### rsync --recursive --links --perms --times --group --owner --devices --specials --verbose --checksum --dry-run /tmp/src/ /tmp/comp sending incremental file list ./ sent 79 bytes received 22 bytes 202.00 bytes/sec total size is 0 speedup is 0.00 (DRY RUN) ################################################################### But it does not if I use "--compare-dest": ################################################################### rsync --recursive --links --perms --times --group --owner --devices --specials --verbose --checksum --dry-run --compare-dest=/tmp/comp /tmp/src/ /tmp/dst sending incremental file list ./ test sent 83 bytes received 22 bytes 210.00 bytes/sec total size is 0 speedup is 0.00 (DRY RUN) ################################################################### This works only, if I disable copying the modification times by removing "--times": ################################################################### rsync --recursive --links --perms --group --owner --devices --specials --verbose --checksum --dry-run --compare-dest=/tmp/comp /tmp/src/ /tmp/dst sending incremental file list sent 73 bytes received 12 bytes 170.00 bytes/sec total size is 0 speedup is 0.00 (DRY RUN) ################################################################### This means "--times" acts like a skip switch if "--compare-dest" is used, which I think is wrong.