Index: gtkmenushell.c
===================================================================
--- gtkmenushell.c	(revision 17126)
+++ gtkmenushell.c	(working copy)
@@ -462,9 +462,11 @@
 			    GtkWidget    *child,
 			    gint          position)
 {
-  menu_shell->children = g_list_insert (menu_shell->children, child, position);
-
-  gtk_widget_set_parent (child, GTK_WIDGET (menu_shell));
+  if (!g_list_find (menu_shell->children, child)) {
+    menu_shell->children = g_list_insert (menu_shell->children, child, position);
+    gtk_container_add (GTK_CONTAINER (menu_shell), child);
+    gtk_widget_set_parent (child, GTK_WIDGET (menu_shell));
+  }
 }
 
 void
