diff --git a/gedit/gedit-commands-file.c b/gedit/gedit-commands-file.c
index 985b041..7f51cf5 100644
--- a/gedit/gedit-commands-file.c
+++ b/gedit/gedit-commands-file.c
@@ -896,6 +896,61 @@ _gedit_cmd_file_save_as (GtkAction   *action,
 	file_save_as (tab, window);
 }
 
+void
+_gedit_cmd_file_show_containing_folder (GtkAction   *action,
+			GeditWindow *window)
+{
+	GeditTab *tab;
+	GeditDocument *doc;
+	GtkWidget *gedit_window_widget;
+	GFile *file;
+	GFile *parent;
+
+	gedit_debug (DEBUG_COMMANDS);
+
+	tab = gedit_window_get_active_tab (window);
+	g_return_if_fail (GEDIT_IS_TAB (tab));
+	if (tab == NULL)
+		return;
+	
+	gedit_window_widget = GTK_WIDGET (window);	
+
+	doc = gedit_tab_get_document (tab);
+	g_return_if_fail (GEDIT_IS_DOCUMENT (doc));
+	
+	file = gedit_document_get_location (doc);
+	g_return_if_fail (file != NULL);
+	parent = NULL;
+
+	if (file) {
+		parent = g_file_get_parent (file);
+		g_object_unref (file);
+	}
+
+	if (parent) {
+		char *parent_uri;
+
+		parent_uri = g_file_get_uri (parent);
+		if (parent_uri) {
+			GdkScreen *screen;
+			guint32 timestamp;
+			GError *error;
+			
+			screen = gtk_widget_get_screen (gedit_window_widget);
+			timestamp = gtk_get_current_event_time ();
+
+			error = NULL;
+			if (!gtk_show_uri (screen, parent_uri, timestamp, &error)) {
+				gedit_debug_message (DEBUG_COMMANDS, "Could not open the containing folder");
+				g_error_free (error);
+			}
+
+			g_free (parent_uri);
+		}
+		g_object_unref (parent);
+	}
+}
+
 static gboolean
 document_needs_saving (GeditDocument *doc)
 {
diff --git a/gedit/gedit-commands.h b/gedit/gedit-commands.h
index 08e7088..16ba554 100644
--- a/gedit/gedit-commands.h
+++ b/gedit/gedit-commands.h
@@ -74,6 +74,8 @@ void		_gedit_cmd_file_save			(GtkAction   *action,
 							 GeditWindow *window);
 void		_gedit_cmd_file_save_as			(GtkAction   *action,
 							 GeditWindow *window);
+void		_gedit_cmd_file_show_containing_folder		(GtkAction   *action,
+							 GeditWindow *window);
 void		_gedit_cmd_file_save_all		(GtkAction   *action,
 							 GeditWindow *window);
 void		_gedit_cmd_file_revert			(GtkAction   *action,
diff --git a/gedit/gedit-ui.h b/gedit/gedit-ui.h
index 8a53625..7e92f93 100644
--- a/gedit/gedit-ui.h
+++ b/gedit/gedit-ui.h
@@ -81,6 +81,9 @@ static const GtkActionEntry gedit_menu_entries[] =
 	  N_("Save the current file"), G_CALLBACK (_gedit_cmd_file_save) },
 	{ "FileSaveAs", GTK_STOCK_SAVE_AS, N_("Save _As..."), "<shift><control>S",
 	  N_("Save the current file with a different name"), G_CALLBACK (_gedit_cmd_file_save_as) },
+	{ "FileShowContainingFolder", GTK_STOCK_DIRECTORY, N_("Show Containing _Folder"), NULL,
+	  N_("Show the folder which contains this file in the file manager"),
+	  G_CALLBACK (_gedit_cmd_file_show_containing_folder) },
 	{ "FileRevert", GTK_STOCK_REVERT_TO_SAVED, NULL, NULL,
 	  N_("Revert to a saved version of the file"), G_CALLBACK (_gedit_cmd_file_revert) },
 #if !GTK_CHECK_VERSION (2, 17, 4)
diff --git a/gedit/gedit-ui.xml b/gedit/gedit-ui.xml
index 21c31a7..a0eedb3 100644
--- a/gedit/gedit-ui.xml
+++ b/gedit/gedit-ui.xml
@@ -40,8 +40,10 @@
       <placeholder name="FileOps_3"/>
       <menuitem name="FileRevertMenu" action="FileRevert"/>
       <placeholder name="FileOps_4"/>
-      <separator/>
+      <menuitem name="FileShowContainingFolderMenu" action="FileShowContainingFolder"/>
       <placeholder name="FileOps_5"/>
+      <separator/>
+      <placeholder name="FileOps_6"/>
       <menuitem name="FilePrintPreviewMenu" action="FilePrintPreview"/>
       <menuitem name="FilePrintMenu" action="FilePrint"/>
       <placeholder name="FileRecentsPlaceholder">
@@ -192,6 +194,7 @@
     <separator/>
     <menuitem action="FileSave"/>
     <menuitem action="FileSaveAs"/>
+    <menuitem action="FileShowContainingFolder"/>
     <separator/>
     <menuitem action="FilePrint"/>
     <separator/>
diff --git a/gedit/gedit-window.c b/gedit/gedit-window.c
index c4bf240..13521ef 100644
--- a/gedit/gedit-window.c
+++ b/gedit/gedit-window.c
@@ -764,6 +764,13 @@ set_sensitivity_according_to_tab (GeditWindow *window,
 				  !(lockdown & GEDIT_LOCKDOWN_SAVE_TO_DISK));
 
 	action = gtk_action_group_get_action (window->priv->action_group,
+					      "FileShowContainingFolder");
+	gtk_action_set_sensitive (action,
+				  (state_normal ||
+				   (state == GEDIT_TAB_STATE_EXTERNALLY_MODIFIED_NOTIFICATION)) &&
+				  !gedit_document_is_untitled (doc));
+
+	action = gtk_action_group_get_action (window->priv->action_group,
 					      "FileRevert");
 	gtk_action_set_sensitive (action,
 				  (state_normal ||
@@ -1520,6 +1527,8 @@ create_menu_bar_and_toolbar (GeditWindow *window,
 	g_object_set (action, "short_label", _("Find"), NULL);
 	action = gtk_action_group_get_action (action_group, "SearchReplace");
 	g_object_set (action, "short_label", _("Replace"), NULL);
+	action = gtk_action_group_get_action (action_group, "FileShowContainingFolder");
+	g_object_set (action, "short_label", _("Open Folder"), NULL);
 
 	/* set which actions should have priority on the toolbar */
 	action = gtk_action_group_get_action (action_group, "FileSave");
