diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index 167936d..c997a63 100644
--- a/gtk/gtk.symbols
+++ b/gtk/gtk.symbols
@@ -2564,6 +2564,7 @@ gtk_menu_shell_deactivate
 gtk_menu_shell_deselect
 gtk_menu_shell_get_type G_GNUC_CONST
 gtk_menu_shell_insert
+gtk_menu_shell_is_active
 gtk_menu_shell_prepend
 gtk_menu_shell_select_first
 gtk_menu_shell_select_item
diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c
index 4788590..61ce56e 100644
--- a/gtk/gtkmenushell.c
+++ b/gtk/gtkmenushell.c
@@ -550,6 +550,22 @@ _gtk_menu_shell_activate (GtkMenuShell *menu_shell)
     }
 }
 
+/**
+ * gtk_menu_shell_is_active:
+ * @menu_shell: a #GtkMenuShell
+ *
+ * Determines whether the menu shell is active.
+ *
+ * Since: 2.20
+ **/
+gboolean
+gtk_menu_shell_is_active (GtkMenuShell *menu_shell)
+{
+  g_return_val_if_fail (GTK_IS_MENU_SHELL (menu_shell), FALSE);
+
+  return menu_shell->active;
+}
+
 static gint
 gtk_menu_shell_button_press (GtkWidget      *widget,
 			     GdkEventButton *event)
diff --git a/gtk/gtkmenushell.h b/gtk/gtkmenushell.h
index 614d397..6d154de 100644
--- a/gtk/gtkmenushell.h
+++ b/gtk/gtkmenushell.h
@@ -105,6 +105,7 @@ void  gtk_menu_shell_prepend           (GtkMenuShell *menu_shell,
 void  gtk_menu_shell_insert            (GtkMenuShell *menu_shell,
 					GtkWidget    *child,
 					gint          position);
+gboolean gtk_menu_shell_is_active      (GtkMenuShell *menu_shell);
 void  gtk_menu_shell_deactivate        (GtkMenuShell *menu_shell);
 void  gtk_menu_shell_select_item       (GtkMenuShell *menu_shell,
 					GtkWidget    *menu_item);
