+ finish_hard_link(file, fname, ndx, &sxp->st, itemizing, code, j);
+ if (itemizing && (verbose > 1 || stdout_format_has_i > 1)) {
+@@ -1080,6 +1086,7 @@ static int try_dests_non(struct file_str
+ static void list_file_entry(struct file_struct *f)
+ {
+ char permbuf[PERMSTRING_SIZE];
++ time_t atime = atimes_ndx ? F_ATIME(f) : 0;
+ double len;
+
+ if (!F_IS_ACTIVE(f)) {
+@@ -1094,14 +1101,16 @@ static void list_file_entry(struct file_
+
+ #ifdef SUPPORT_LINKS
+ if (preserve_links && S_ISLNK(f->mode)) {
+- rprintf(FINFO, "%s %11.0f %s %s -> %s\n",
++ rprintf(FINFO, "%s %11.0f %s %s %s -> %s\n",
+ permbuf, len, timestring(f->modtime),
++ atimes_ndx ? timestring(atime) : "",
+ f_name(f, NULL), F_SYMLINK(f));
+ } else
+ #endif
+ {
+- rprintf(FINFO, "%s %11.0f %s %s\n",
++ rprintf(FINFO, "%s %11.0f %s %s %s\n",
+ permbuf, len, timestring(f->modtime),
++ atimes_ndx ? timestring(atime) : "",
+ f_name(f, NULL));
+ }
+ }
+@@ -1851,7 +1860,7 @@ static void touch_up_dirs(struct file_li
+ if (!(file->mode & S_IWUSR))
+ do_chmod(fname, file->mode);
+ if (need_retouch_dir_times)
+- set_modtime(fname, file->modtime, file->mode);
++ set_times(fname, file->modtime, file->modtime, file->mode);
+ if (allowed_lull && !(counter % lull_mod))
+ maybe_send_keepalive();
+ else if (!(counter & 0xFF))