ACCESS_FBINFO(fbops).fb_imageblit = matroxfb_imageblit;
                                }
                                break;
-               case 16:        if (ACCESS_FBINFO(fbcon).var.green.length == 5) {
+               case 16:        if (ACCESS_FBINFO(fbcon).var.green.length == 5)
                                        maccess = 0xC0000001;
-                                       ACCESS_FBINFO(cmap[16]) = 0x7FFF7FFF;
-                               } else {
+                               else
                                        maccess = 0x40000001;
-                                       ACCESS_FBINFO(cmap[16]) = 0xFFFFFFFF;
-                               }
                                mopmode = M_OPMODE_16BPP;
                                if (accel) {
                                        ACCESS_FBINFO(fbops).fb_copyarea = matroxfb_copyarea;
                                break;
                case 24:        maccess = 0x00000003;
                                mopmode = M_OPMODE_24BPP;
-                               ACCESS_FBINFO(cmap[16]) = 0xFFFFFFFF;
                                if (accel) {
                                        ACCESS_FBINFO(fbops).fb_copyarea = matroxfb_copyarea;
                                        ACCESS_FBINFO(fbops).fb_fillrect = matroxfb_fillrect;
                                break;
                case 32:        maccess = 0x00000002;
                                mopmode = M_OPMODE_32BPP;
-                               ACCESS_FBINFO(cmap[16]) = 0xFFFFFFFF;
                                if (accel) {
                                        ACCESS_FBINFO(fbops).fb_copyarea = matroxfb_copyarea;
                                        ACCESS_FBINFO(fbops).fb_fillrect = matroxfb_fillrect;
 
                mga_outb(M_DAC_VAL, blue);
                break;
        case 16:
+               if (regno >= 16)
+                       break;
                {
                        u_int16_t col =
                                (red << ACCESS_FBINFO(fbcon).var.red.offset)     |
                break;
        case 24:
        case 32:
+               if (regno >= 16)
+                       break;
                ACCESS_FBINFO(cmap[regno]) =
                        (red   << ACCESS_FBINFO(fbcon).var.red.offset)   |
                        (green << ACCESS_FBINFO(fbcon).var.green.offset) |
 
        ACCESS_FBINFO(hw).crtc2.ctl = 0x00000004;
 }
 
-static void matroxfb_dh_cfbX_init(struct matroxfb_dh_fb_info* m2info) {
-       /* no acceleration for secondary head... */
-       m2info->cmap[16] = 0xFFFFFFFF;
-}
-
 static void matroxfb_dh_pan_var(struct matroxfb_dh_fb_info* m2info,
                struct fb_var_screeninfo* var) {
        unsigned int pos;
                        }
                }
                up_read(&ACCESS_FBINFO(altout).lock);
-               matroxfb_dh_cfbX_init(m2info);
        }
        m2info->initialized = 1;
        return 0;