Index: gtkmenuitem.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkmenuitem.c,v
retrieving revision 1.109
diff -u -p -r1.109 gtkmenuitem.c
--- gtkmenuitem.c	7 May 2004 03:55:39 -0000	1.109
+++ gtkmenuitem.c	12 May 2004 04:20:26 -0000
@@ -830,9 +830,12 @@ gtk_real_menu_item_select (GtkItem *item
       gint popup_delay;
 
       if (menu_item->timer)
-	g_source_remove (menu_item->timer);
-
-      popup_delay = get_popup_delay (menu_item);
+	{
+	  g_source_remove (menu_item->timer);
+	  popup_delay = 0;
+	}
+      else
+	popup_delay = get_popup_delay (menu_item);
       
       if (popup_delay > 0)
 	{
Index: gtkmenushell.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkmenushell.c,v
retrieving revision 1.78
diff -u -p -r1.78 gtkmenushell.c
--- gtkmenushell.c	15 Mar 2004 02:03:55 -0000	1.78
+++ gtkmenushell.c	12 May 2004 04:20:26 -0000
@@ -523,10 +523,10 @@ gtk_menu_shell_button_release (GtkWidget
 	      _gtk_menu_item_is_selectable (menu_item))
 	    {
 	      if (GTK_MENU_ITEM (menu_item)->submenu == NULL)
-		{
-		  gtk_menu_shell_activate_item (menu_shell, menu_item, TRUE);
-		  return TRUE;
-		}
+		gtk_menu_shell_activate_item (menu_shell, menu_item, TRUE);
+	      else
+		gtk_menu_item_select (menu_item);
+	      return TRUE;
 	    }
 	  else if (menu_item && !_gtk_menu_item_is_selectable (menu_item))
 	    deactivate = FALSE;
