Index: src/file-manager/fm-properties-window.c
===================================================================
--- src/file-manager/fm-properties-window.c	(revision 14073)
+++ src/file-manager/fm-properties-window.c	(working copy)
@@ -153,7 +153,9 @@ struct FMPropertiesWindowDetails {	
 
 	gboolean deep_count_finished;
 
-	guint total_count;
+	guint total_directory_count;
+	guint total_file_count;
+
 	goffset total_size;
 
 	guint long_operation_underway;
@@ -2237,7 +2239,8 @@ directory_contents_value_field_update (F
 	char *text, *temp;
 	guint directory_count;
 	guint file_count;
-	guint total_count;
+	guint total_file_count;
+	guint total_directory_count;
 	guint unreadable_directory_count;
 	goffset total_size;
 	gboolean used_two_lines;
@@ -2250,7 +2253,8 @@ directory_contents_value_field_update (F
 
 	status = NAUTILUS_REQUEST_DONE;
 	file_status = NAUTILUS_REQUEST_NOT_STARTED;
-	total_count = window->details->total_count;
+	total_directory_count = window->details->total_directory_count;
+	total_file_count = window->details->total_file_count;
 	total_size = window->details->total_size;
 	unreadable_directory_count = FALSE;
 
@@ -2263,7 +2267,9 @@ directory_contents_value_field_update (F
 					 &file_unreadable,
 					 &file_size,
 					 TRUE);
-			total_count += (file_count + directory_count);
+
+			total_directory_count += directory_count;
+			total_file_count += file_count;
 			total_size += file_size;
 			
 			if (file_unreadable) {
@@ -2274,7 +2280,7 @@ directory_contents_value_field_update (F
 				status = file_status;
 			}
 		} else {
-			++total_count;
+			++total_file_count;
 			total_size += nautilus_file_get_size (file);
 		}
 	}
@@ -2291,7 +2297,7 @@ directory_contents_value_field_update (F
 	text = NULL;
 	used_two_lines = FALSE;
 	
-	if (total_count == 0) {
+	if (total_directory_count + total_file_count == 0) {
 		switch (status) {
 		case NAUTILUS_REQUEST_DONE:
 			if (unreadable_directory_count == 0) {
@@ -2305,13 +2311,30 @@ directory_contents_value_field_update (F
 			text = g_strdup ("...");
 		}
 	} else {
+		char *dirs_str;
+		char *files_str;
 		char *size_str;
+		char *with_size_str;
+
+		dirs_str = NULL;
+
 		size_str = g_format_size_for_display (total_size);
-		text = g_strdup_printf (ngettext("%'d item, with size %s",
-						 "%'d items, totalling %s",
-						 total_count),
-					total_count, size_str);
-		g_free (size_str);
+
+		with_size_str = g_strdup_printf (ngettext ("with size %s",
+				"totalling %s", total_directory_count + total_file_count), size_str);
+
+		files_str = g_strdup_printf (ngettext ("1 file",
+						"%'d files", total_file_count), total_file_count);
+
+		if (total_directory_count > 0) {
+			dirs_str = g_strdup_printf (ngettext ("1 directory",
+						"%'d directories", total_directory_count),
+						total_directory_count);
+
+			text = g_strconcat (dirs_str, ", ", files_str, ", ", with_size_str, NULL);
+		} else {
+			text = g_strconcat (files_str, ", ", with_size_str, NULL);
+		}
 
 		if (unreadable_directory_count != 0) {
 			temp = text;
@@ -2321,6 +2344,11 @@ directory_contents_value_field_update (F
 			g_free (temp);
 			used_two_lines = TRUE;
 		}
+
+		g_free (with_size_str);
+		g_free (size_str);
+		g_free (files_str);
+		g_free (dirs_str);
 	}
 
 	gtk_label_set_text (window->details->directory_contents_value_field,
