diff -Nur xorg-server-1.11.99.902.orig/hw/xfree86/common/xf86pciBus.c xorg-server-1.11.99.902/hw/xfree86/common/xf86pciBus.c
--- xorg-server-1.11.99.902.orig/hw/xfree86/common/xf86pciBus.c	2012-02-10 10:10:37.583014924 +0000
+++ xorg-server-1.11.99.902/hw/xfree86/common/xf86pciBus.c	2012-02-10 11:16:07.148971317 +0000
@@ -1144,7 +1144,23 @@
         int idx = 0;
 
 #ifdef __linux__
-        driverList[idx++] = "nouveau";
+	    switch (dev->device_id)
+		{
+		/* NV1 */
+		case 0x0008:
+		case 0x0009:
+		    driverList[idx++] = "vesa";
+		    break;
+		/* NV3 */
+		case 0x0018:
+		case 0x0019:
+		    driverList[idx++] = "nouveau";
+		    break;
+		default:
+		    driverList[idx++] = "nouveau";
+		    driverList[idx++] = "nvidia";
+		    break;
+		}
 #endif
         driverList[idx++] = "nv";
         break;
