This patch prevents rsync from changing the creation date on the root of a volume. On HFS+, the root inode is always 2, as defined in hfs/hfs_format.h: kHFSRootFolderID = 2, /* Folder ID of the root folder */ So before calling set_create_time(), we verify from the existing stat struct that the inode of the current file is not 2. diff -Naur rsync-3.0.7_orig/rsync.c rsync-3.0.7/rsync.c --- rsync-3.0.7_orig/rsync.c 2010-09-16 10:49:54.000000000 -0500 +++ rsync-3.0.7/rsync.c 2010-09-16 10:50:43.000000000 -0500 @@ -480,6 +480,7 @@ if (sxp->crtime == 0) sxp->crtime = get_create_time(fname); if (cmp_time(sxp->crtime, file_crtime) != 0 + && sxp->st.st_ino != 2 // Don't set the creation date on the root folder of an HFS+ volume && set_create_time(fname, file_crtime) == 0) updated = 1; }