Index: xc/programs/Xserver/hw/xfree86/drivers/newport/newport_cmap.c
===================================================================
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/newport/newport_cmap.c,v
retrieving revision 1.2
diff -u -p -u -r1.2 newport_cmap.c
--- xc/programs/Xserver/hw/xfree86/drivers/newport/newport_cmap.c	2001/11/23 19:50:45	1.2
+++ xc/programs/Xserver/hw/xfree86/drivers/newport/newport_cmap.c	2002/04/23 10:15:33
@@ -33,12 +33,33 @@ void NewportBackupPalette(ScrnInfoPtr pS
 	}
 }
 
+#ifdef linux
+/* stolen from kernel :) */
+static unsigned char color_table[] = { 0, 4, 2, 6, 1, 5, 3, 7,
+				       8,12,10,14, 9,13,11,15 };
+ 
+/* the default colour table, for VGA+ colour systems */
+static int default_red[] = {0x00,0xaa,0x00,0xaa,0x00,0xaa,0x00,0xaa,
+    0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff};
+static int default_grn[] = {0x00,0x00,0xaa,0x55,0x00,0x00,0xaa,0xaa,
+    0x55,0x55,0xff,0xff,0x55,0x55,0xff,0xff};
+static int default_blu[] = {0x00,0x00,0x00,0x00,0xaa,0xaa,0xaa,0xaa,
+    0x55,0x55,0x55,0x55,0xff,0xff,0xff,0xff};
+#endif
+
 /* restore the default colormap */
 void NewportRestorePalette(ScrnInfoPtr pScrn)
 {
 	int i;
 	NewportPtr pNewport = NEWPORTPTR(pScrn);
 	
+#ifdef linux
+        for (i = 0; i < 16; i++) {
+		pNewport->txt_colormap[color_table[i]].red = default_red[i];
+		pNewport->txt_colormap[color_table[i]].green = default_grn[i];
+		pNewport->txt_colormap[color_table[i]].blue = default_blu[i];
+	}
+#endif
 	for(i = 0; i < 256; i++) {
 		NewportCmapSetRGB(pNewport->pNewportRegs, i, pNewport->txt_colormap[i]);
 	}
