Index: gtk/gtkcheckmenuitem.c
===================================================================
--- gtk/gtkcheckmenuitem.c	(revision 21696)
+++ gtk/gtkcheckmenuitem.c	(working copy)
@@ -105,21 +105,10 @@
                                                          FALSE,
                                                          GTK_PARAM_READWRITE));
   
-  gtk_widget_class_install_style_property (widget_class,
-                                           g_param_spec_int ("indicator-size",
-                                                             P_("Indicator Size")
-,
-                                                             P_("Size of check or radio indicator"),
-                                                             0,
-                                                             G_MAXINT,
-                                                             13,
-                                                             GTK_PARAM_READABLE));
-
   widget_class->expose_event = gtk_check_menu_item_expose;
   
   menu_item_class->activate = gtk_check_menu_item_activate;
   menu_item_class->hide_on_activate = FALSE;
-  menu_item_class->toggle_size_request = gtk_check_menu_item_toggle_size_request;
   
   klass->toggled = NULL;
   klass->draw_indicator = gtk_real_check_menu_item_draw_indicator;
@@ -215,23 +204,6 @@
   return check_menu_item->active;
 }
 
-static void
-gtk_check_menu_item_toggle_size_request (GtkMenuItem *menu_item,
-					 gint        *requisition)
-{
-  guint toggle_spacing;
-  guint indicator_size;
-  
-  g_return_if_fail (GTK_IS_CHECK_MENU_ITEM (menu_item));
-  
-  gtk_widget_style_get (GTK_WIDGET (menu_item),
-			"toggle-spacing", &toggle_spacing,
-			"indicator-size", &indicator_size,
-			NULL);
-
-  *requisition = indicator_size + toggle_spacing;
-}
-
 void
 gtk_check_menu_item_set_show_toggle (GtkCheckMenuItem *menu_item,
 				     gboolean          always)
Index: gtk/gtkmenuitem.c
===================================================================
--- gtk/gtkmenuitem.c	(revision 21696)
+++ gtk/gtkmenuitem.c	(working copy)
@@ -291,6 +291,24 @@
                                                              P_("The minimum desired width of the menu item in characters"),
                                                              0, G_MAXINT, 12,
                                                              GTK_PARAM_READABLE));
+
+  /**
+   * GtkMenuItem:indicator-size:
+   *
+   * Sets the size the indicator for the menu item.  This is typically
+   * a check or radio indicator.
+   *
+   * Since: 2.14
+   **/
+  gtk_widget_class_install_style_property (widget_class,
+                                           g_param_spec_int ("indicator-size",
+                                                             P_("Indicator Size")
+,
+                                                             P_("Size of check or radio indicator"),
+                                                             0,
+                                                             G_MAXINT,
+                                                             13,
+                                                             GTK_PARAM_READABLE));
 }
 
 static void
@@ -1108,9 +1126,24 @@
 gtk_real_menu_item_toggle_size_request (GtkMenuItem *menu_item,
 					gint        *requisition)
 {
+  guint toggle_spacing;
+  guint indicator_size;
+
   g_return_if_fail (GTK_IS_MENU_ITEM (menu_item));
 
-  *requisition = 0;
+  if (GTK_IS_MENU_BAR (GTK_WIDGET (menu_item)->parent))
+    {
+      *requisition = 0;
+    }
+  else
+    {
+      gtk_widget_style_get (GTK_WIDGET (menu_item),
+                            "toggle-spacing", &toggle_spacing,
+                            "indicator-size", &indicator_size,
+                            NULL);
+
+      *requisition = indicator_size + toggle_spacing;
+    }
 }
 
 static void
Index: gtk/gtkimagemenuitem.c
===================================================================
--- gtk/gtkimagemenuitem.c	(revision 21696)
+++ gtk/gtkimagemenuitem.c	(working copy)
@@ -219,6 +219,10 @@
 	    *requisition = image_requisition.height + toggle_spacing;
 	}
     }
+  else
+    {
+      GTK_MENU_ITEM_CLASS (gtk_image_menu_item_parent_class)->toggle_size_request (menu_item, requisition);
+    }
 }
 
 
Index: gtk/gtkmenu.c
===================================================================
--- gtk/gtkmenu.c	(revision 21696)
+++ gtk/gtkmenu.c	(working copy)
@@ -2385,7 +2385,7 @@
   for (i = 0; i < gtk_menu_get_n_rows (menu); i++)
     requisition->height += priv->heights[i];
 
-  requisition->width += max_toggle_size + max_accel_width;
+  requisition->width += 2 * max_toggle_size + max_accel_width;
   requisition->width *= gtk_menu_get_n_columns (menu);
 
   gtk_widget_style_get (GTK_WIDGET (menu),
