--- linux/drivers/video/fbgen.c.ORIG	Thu May 17 14:34:54 2001
+++ linux/drivers/video/fbgen.c	Fri Jun 22 15:20:34 2001
@@ -106,6 +106,7 @@
     struct fb_info_gen *info2 = (struct fb_info_gen *)info;
     int err;
     int oldxres, oldyres, oldbpp, oldxres_virtual, oldyres_virtual, oldyoffset;
+    struct fb_bitfield oldred, oldgreen, oldblue;
 
     if ((err = fbgen_do_set_var(var, con == currcon, info2)))
 	return err;
@@ -115,12 +116,24 @@
 	oldxres_virtual = fb_display[con].var.xres_virtual;
 	oldyres_virtual = fb_display[con].var.yres_virtual;
 	oldbpp = fb_display[con].var.bits_per_pixel;
+	oldred.offset = fb_display[con].var.red.offset;
+	oldred.length = fb_display[con].var.red.length;
+	oldgreen.offset = fb_display[con].var.green.offset;
+	oldgreen.length = fb_display[con].var.green.length;
+	oldblue.offset = fb_display[con].var.blue.offset;
+	oldblue.length = fb_display[con].var.blue.length;
 	oldyoffset = fb_display[con].var.yoffset;
 	fb_display[con].var = *var;
 	if (oldxres != var->xres || oldyres != var->yres ||
 	    oldxres_virtual != var->xres_virtual ||
 	    oldyres_virtual != var->yres_virtual ||
 	    oldbpp != var->bits_per_pixel ||
+	    oldred.offset != var->red.offset ||
+	    oldred.length != var->red.length ||
+	    oldgreen.offset != var->green.offset ||
+	    oldgreen.length != var->green.length ||
+	    oldblue.offset != var->blue.offset ||
+	    oldblue.length != var->blue.length ||
 	    oldyoffset != var->yoffset) {
 	    fbgen_set_disp(con, info2);
 	    if (info->changevar)
