diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index c831414..2a4b74f 100644
--- a/gtk/gtk.symbols
+++ b/gtk/gtk.symbols
@@ -2072,6 +2072,7 @@ gtk_menu_shell_select_first
 gtk_menu_shell_select_item
 gtk_menu_shell_set_take_focus
 gtk_menu_shell_get_take_focus
+gtk_menu_shell_get_selected_item
 #endif
 #endif
 
diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c
index c3e107f..bc5cf80 100644
--- a/gtk/gtkmenushell.c
+++ b/gtk/gtkmenushell.c
@@ -1215,6 +1215,28 @@ gtk_menu_shell_deselect (GtkMenuShell *menu_shell)
     }
 }
 
+/**
+ * gtk_menu_shell_get_selected_item:
+ * @menu_shell: a #GtkMenuShell
+ *
+ * Retrieves a pointer to the currently selected menuitem,
+ * or %NULL if there is no menuitem currently selected.  A
+ * currently selected menuitem is one that is currently
+ * being displayed in the prelight state.
+ *
+ * Return value: a #GtkWidget or %NULL in case there is no
+ * selected menuitem
+ *
+ * Since: 2.22
+ **/
+GtkWidget *
+gtk_menu_shell_get_selected_item (GtkMenuShell *menu_shell)
+{
+  g_return_val_if_fail (GTK_IS_MENU_SHELL (menu_shell), NULL);
+
+  return menu_shell->active_menu_item;
+}
+
 void
 gtk_menu_shell_activate_item (GtkMenuShell      *menu_shell,
 			      GtkWidget         *menu_item,
diff --git a/gtk/gtkmenushell.h b/gtk/gtkmenushell.h
index e0d042b..804a773 100644
--- a/gtk/gtkmenushell.h
+++ b/gtk/gtkmenushell.h
@@ -112,6 +112,7 @@ void  gtk_menu_shell_deselect          (GtkMenuShell *menu_shell);
 void  gtk_menu_shell_activate_item     (GtkMenuShell *menu_shell,
 					GtkWidget    *menu_item,
 					gboolean      force_deactivate);
+GtkWidget *gtk_menu_shell_get_selected_item (GtkMenuShell *menu_shell);
 void  gtk_menu_shell_select_first      (GtkMenuShell *menu_shell,
 					gboolean      search_sensitive);
 void _gtk_menu_shell_select_last       (GtkMenuShell *menu_shell,
