--- orig/flist.c	2005-01-25 00:53:58
+++ flist.c	2004-09-03 14:17:31
@@ -1087,6 +1087,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");
@@ -1251,6 +1252,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);
 
@@ -1258,6 +1262,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	2005-01-24 01:43:10
+++ main.c	2004-09-03 14:18:47
@@ -181,6 +181,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	2005-01-25 00:53:58
+++ rsync.h	2004-09-03 14:05:13
@@ -540,6 +540,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;
