--- /dev/null
+--- orig/flist.c 2004-08-12 18:34:38
++++ flist.c 2004-09-03 14:17:31
+@@ -1056,6 +1056,7 @@ struct file_list *send_file_list(int f,
+ start_filelist_progress("building file list");
+
+ start_write = stats.total_written;
++ stats.flist_buildtime = time(NULL);
+
+ flist = flist_new(f == -1 ? WITHOUT_HLINK : WITH_HLINK,
+ "send_file_list");
+@@ -1202,6 +1203,9 @@ struct file_list *send_file_list(int f,
+ }
+ }
+
++ stats.flist_buildtime = time(NULL) - stats.flist_buildtime;
++ stats.flist_xfertime = time(NULL);
++
+ if (f != -1) {
+ send_file_entry(NULL, f, 0);
+
+@@ -1209,6 +1213,8 @@ struct file_list *send_file_list(int f,
+ finish_filelist_progress(flist);
+ }
+
++ stats.flist_xfertime = time(NULL) - stats.flist_xfertime;
++
+ if (flist->hlink_pool) {
+ pool_destroy(flist->hlink_pool);
+ flist->hlink_pool = NULL;
+--- orig/main.c 2004-08-05 18:24:21
++++ main.c 2004-09-03 14:18:47
+@@ -178,6 +178,10 @@ static void report(int f)
+ rprintf(FINFO,"Matched data: %.0f bytes\n",
+ (double)stats.matched_data);
+ rprintf(FINFO,"File list size: %d\n", stats.flist_size);
++ rprintf(FINFO,"File list generation: %lu seconds\n",
++ stats.flist_buildtime);
++ rprintf(FINFO,"File list transfer time: %lu seconds\n",
++ stats.flist_xfertime);
+ rprintf(FINFO,"Total bytes sent: %.0f\n",
+ (double)total_written);
+ rprintf(FINFO,"Total bytes received: %.0f\n",
+--- orig/rsync.h 2004-08-03 15:41:32
++++ rsync.h 2004-09-03 14:05:13
+@@ -520,6 +520,8 @@ struct stats {
+ int64 literal_data;
+ int64 matched_data;
+ int flist_size;
++ time_t flist_buildtime;
++ time_t flist_xfertime;
+ int num_files;
+ int num_transferred_files;
+ int current_file_index;