diff --git a/src/gui.h b/src/gui.h
index 0bd29fc..bb8a3d9 100644
--- a/src/gui.h
+++ b/src/gui.h
@@ -333,12 +333,6 @@
     char	*rsrc_scroll_bg_name;	// Color of scrollbar background
     guicolor_T	scroll_bg_pixel;	// Same in Pixel format
 
-# ifdef FEAT_GUI_MOTIF
-    guicolor_T	menu_def_fg_pixel;  // Default menu foreground
-    guicolor_T	menu_def_bg_pixel;  // Default menu background
-    guicolor_T	scroll_def_fg_pixel;  // Default scrollbar foreground
-    guicolor_T	scroll_def_bg_pixel;  // Default scrollbar background
-# endif
     Display	*dpy;		    // X display
     Window	wid;		    // Window id of text area
     int		visibility;	    // Is shell partially/fully obscured?
diff --git a/src/gui_motif.c b/src/gui_motif.c
index 564c0bb..7402888 100644
--- a/src/gui_motif.c
+++ b/src/gui_motif.c
@@ -440,11 +440,6 @@
 	menuBar = XmCreateMenuBar(vimForm, "menuBar", al, ac);
 	XtManageChild(menuBar);
 
-	// Remember the default colors, needed for ":hi clear".
-	XtVaGetValues(menuBar,
-	    XmNbackground, &gui.menu_def_bg_pixel,
-	    XmNforeground, &gui.menu_def_fg_pixel,
-	    NULL);
 	gui_motif_menu_colors(menuBar);
     }
 #endif
@@ -1672,12 +1667,10 @@
 {
     if (gui.in_use)
     {
-	// Use the values saved when starting up.  These should come from the
-	// window manager or a resources file.
-	gui.menu_fg_pixel = gui.menu_def_fg_pixel;
-	gui.menu_bg_pixel = gui.menu_def_bg_pixel;
-	gui.scroll_fg_pixel = gui.scroll_def_fg_pixel;
-	gui.scroll_bg_pixel = gui.scroll_def_bg_pixel;
+	gui.menu_fg_pixel = gui_get_color((char_u *)gui.rsrc_menu_fg_name);
+	gui.menu_bg_pixel = gui_get_color((char_u *)gui.rsrc_menu_bg_name);
+	gui.scroll_fg_pixel = gui_get_color((char_u *)gui.rsrc_scroll_fg_name);
+	gui.scroll_bg_pixel = gui_get_color((char_u *)gui.rsrc_scroll_bg_name);
 #ifdef FEAT_BEVAL_GUI
 	gui.tooltip_fg_pixel =
 			gui_get_color((char_u *)gui.rsrc_tooltip_fg_name);
@@ -1860,14 +1853,6 @@
     sb->id = XtCreateWidget("scrollBar",
 	    xmScrollBarWidgetClass, textAreaForm, args, n);
 
-    // Remember the default colors, needed for ":hi clear".
-    if (gui.scroll_def_bg_pixel == (guicolor_T)0
-	    && gui.scroll_def_fg_pixel == (guicolor_T)0)
-	XtVaGetValues(sb->id,
-		XmNbackground, &gui.scroll_def_bg_pixel,
-		XmNforeground, &gui.scroll_def_fg_pixel,
-		NULL);
-
     if (sb->id != (Widget)0)
     {
 	gui_mch_set_scrollbar_colors(sb);
@@ -1895,12 +1880,16 @@
 	if (gui.scroll_bg_pixel != INVALCOLOR)
 	{
 #if (XmVersion>=1002)
+	    // This should not only set the through color but also adjust
+	    // related colors, such as shadows.
 	    XmChangeColor(sb->id, gui.scroll_bg_pixel);
-#else
+#endif
+
+	    // Set the through color directly, in case XmChangeColor() decided
+	    // to change it.
 	    XtVaSetValues(sb->id,
 		    XmNtroughColor, gui.scroll_bg_pixel,
 		    NULL);
-#endif
 	}
 
 	if (gui.scroll_fg_pixel != INVALCOLOR)
diff --git a/src/version.c b/src/version.c
index 9a624cf..f211594 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4558,
+/**/
     4557,
 /**/
     4556,
