Index: gtkmenu.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkmenu.c,v
retrieving revision 1.205
diff -u -r1.205 gtkmenu.c
--- gtkmenu.c	13 Sep 2005 19:57:41 -0000	1.205
+++ gtkmenu.c	27 Sep 2005 18:07:24 -0000
@@ -879,6 +879,8 @@
 gtk_menu_init (GtkMenu *menu)
 {
   GtkMenuPrivate *priv = gtk_menu_get_private (menu);
+  GdkScreen *screen;
+  GdkColormap *colormap;
 
   menu->parent_menu_item = NULL;
   menu->old_active_menu_item = NULL;
@@ -887,10 +889,20 @@
   menu->position_func_data = NULL;
   menu->toggle_size = 0;
 
-  menu->toplevel = g_object_connect (g_object_new (GTK_TYPE_WINDOW,
-						   "type", GTK_WINDOW_POPUP,
-						   "child", menu,
-						   NULL),
+  GtkWidget *window = g_object_new (GTK_TYPE_WINDOW,
+                           "type", GTK_WINDOW_POPUP,
+                           "child", menu,
+                           NULL);
+
+  screen = gtk_widget_get_screen (window);
+  colormap = gdk_screen_get_rgba_colormap (screen);
+
+  if (!colormap)
+    colormap = gdk_screen_get_rgb_colormap (screen);
+                     
+  gtk_widget_set_colormap (window, colormap);
+
+  menu->toplevel = g_object_connect (G_OBJECT(window), 
 				     "signal::event", gtk_menu_window_event, menu,
 				     "signal::size_request", gtk_menu_window_size_request, menu,
 				     "signal::destroy", gtk_widget_destroyed, &menu->toplevel,
