-@@ -554,10 +555,11 @@ void itemize(const char *fname, struct f
+@@ -544,6 +545,7 @@ void itemize(const char *fname, struct f
+ int keep_time = !preserve_times ? 0
+ : S_ISDIR(file->mode) ? !omit_dir_times
+ : !S_ISLNK(file->mode);
++ int omit_changes = omit_dir_changes && S_ISDIR(sxp->st.st_mode);
+
+ if (S_ISREG(file->mode) && F_LENGTH(file) != sxp->st.st_size)
+ iflags |= ITEM_REPORT_SIZE;
+@@ -554,10 +556,11 @@ void itemize(const char *fname, struct f