diff --git a/src/file-manager/fm-tree-view.c b/src/file-manager/fm-tree-view.c
index de9523d..2db295a 100644
--- a/src/file-manager/fm-tree-view.c
+++ b/src/file-manager/fm-tree-view.c
@@ -1060,6 +1060,20 @@ fm_tree_view_get_containing_window (FMTreeView *view)
 }
 
 static void
+fm_tree_view_expand_all_cb (GtkWidget *menu_item,
+			    FMTreeView *view)
+{
+	GtkTreePath *path;
+
+	gtk_tree_view_get_cursor (view->details->tree_widget, &path, NULL);
+
+	gtk_tree_view_expand_row (view->details->tree_widget,
+				  path,
+				  TRUE);
+	gtk_tree_path_free (path);
+}
+
+static void
 fm_tree_view_trash_cb (GtkWidget *menu_item,
 		       FMTreeView *view)
 {
@@ -1289,6 +1303,13 @@ create_popup_menu (FMTreeView *view)
 	gtk_menu_shell_append (GTK_MENU_SHELL (popup), menu_item);
 	view->details->popup_trash = menu_item;
 	
+	menu_item = gtk_image_menu_item_new_with_mnemonic (_("E_xpand All"));
+	g_signal_connect (menu_item, "activate",
+			  G_CALLBACK (fm_tree_view_expand_all_cb),
+			  view);
+	gtk_widget_show (menu_item);
+	gtk_menu_shell_append (GTK_MENU_SHELL (popup), menu_item);
+
 	/* add the "delete" menu item */
 	menu_image = gtk_image_new_from_icon_name (NAUTILUS_ICON_DELETE,
 						   GTK_ICON_SIZE_MENU);
