diff -urN gnucash-2.2.5-orig/src/gnome-utils/gnc-main-window.c gnucash-2.2.5-work/src/gnome-utils/gnc-main-window.c
--- gnucash-2.2.5-orig/src/gnome-utils/gnc-main-window.c	2008-03-02 08:24:57.000000000 -0500
+++ gnucash-2.2.5-work2/src/gnome-utils/gnc-main-window.c	2008-05-06 10:48:29.000000000 -0400
@@ -2811,6 +2811,8 @@
 	GList *plugins;
 	GError *error = NULL;
 	gchar *filename;
+	GdkScreen *screen;
+	GdkColormap *colormap;
 
 	ENTER(" ");
 
@@ -2820,6 +2822,15 @@
 
 	/* Create widgets and add them to the window */
 	main_vbox = gtk_vbox_new (FALSE, 0);
+
+	/* Set the colour map */
+	screen   = gtk_widget_get_screen (main_vbox);
+	colormap = gdk_screen_get_rgba_colormap (screen);
+
+	if (colormap)
+	   gtk_widget_set_default_colormap (colormap);
+	/* End Set colour map */
+
 	gtk_widget_show (main_vbox);
 	gtk_container_add (GTK_CONTAINER (window), main_vbox);
 
--- gnucash-2.2.5-orig/src/gnome-utils/gnc-dense-cal.c	2008-05-06 21:31:02.000000000 -0400
+++ gnucash-2.2.5/src/gnome-utils/gnc-dense-cal.c	2008-05-06 21:42:00.000000000 -0400
@@ -256,6 +256,8 @@
 gnc_dense_cal_init(GncDenseCal *dcal)
 {
     gboolean colorAllocSuccess;
+    GdkScreen *screen = NULL;
+    GdkColormap *colormap = NULL;
 
     gtk_widget_push_composite_child();
 
@@ -342,7 +344,20 @@
 
     gdk_color_parse(MONTH_THIS_COLOR,  &dcal->weekColors[MONTH_THIS]);
     gdk_color_parse(MONTH_THAT_COLOR,  &dcal->weekColors[MONTH_THAT]);
-    if (gdk_colormap_alloc_colors(gdk_colormap_get_system(),
+
+    screen   = gtk_widget_get_screen (GTK_WIDGET(dcal));
+    if (screen == NULL)
+    {
+       colormap = gdk_colormap_get_system();
+    } 
+    else
+    {
+       colormap = gdk_screen_get_rgba_colormap (screen);
+       if (colormap == NULL) 
+          colormap = gdk_colormap_get_system();
+    }
+
+    if (gdk_colormap_alloc_colors(colormap,
                                   dcal->weekColors,
                                   MAX_COLORS, TRUE, TRUE,
                                   &colorAllocSuccess) > 0)
@@ -882,6 +897,8 @@
     int maxWidth;
     PangoLayout *layout;
     GTimer *timer;
+    GdkScreen *screen = NULL;
+    GdkColormap *colormap = NULL;
 
     timer = g_timer_new();
     g_debug("drawing");
@@ -953,7 +970,20 @@
         gdk_gc_get_values(widget->style->fg_gc[widget->state], &current_values);
 
         gdk_color_parse(MARK_COLOR, &markColor);
-        gdk_colormap_alloc_color(gdk_colormap_get_system(), &markColor, TRUE, TRUE);
+
+        screen   = gtk_widget_get_screen (GTK_WIDGET(dcal));
+        if (screen == NULL)
+        {
+           colormap = gdk_colormap_get_system();
+        } 
+        else
+        {
+        colormap = gdk_screen_get_rgba_colormap (screen);
+        if (colormap == NULL) 
+           colormap = gdk_colormap_get_system();
+        }
+
+        gdk_colormap_alloc_color(colormap, &markColor, TRUE, TRUE);
 
         gdk_gc_set_foreground(widget->style->fg_gc[widget->state], &markColor);
         for (i=0; i<dcal->numMarks; i++)
