diff -ru xorg-server-1.3.0.0.orig/hw/xfree86/common/xf86Config.c xorg-server-1.3.0.0/hw/xfree86/common/xf86Config.c
--- xorg-server-1.3.0.0.orig/hw/xfree86/common/xf86Config.c	2006-12-01 02:40:10.000000000 +0100
+++ xorg-server-1.3.0.0/hw/xfree86/common/xf86Config.c	2007-08-01 22:05:58.000000000 +0200
@@ -471,7 +471,7 @@
 static void
 fixup_video_driver_list(char **drivers)
 {
-    static const char *fallback[5] = { "vga", "vesa", "fbdev", "wsfb", NULL };
+    static const char *fallback[7] = { "fglrx", "vga", "vesa", "fbdev", "wsfb", "nv", NULL };
     char **end, **drv;
     char *x;
     char **ati, **atimisc;
@@ -486,9 +486,11 @@
      * swap it with the last available non-fallback driver.
      */
     for (i = 0; fallback[i]; i++) {
-        for (drv = drivers; drv != end; drv++) {
+        for (drv = drivers; drv <= end; drv++) {
             if (strstr(*drv, fallback[i])) {
                 x = *drv; *drv = *end; *end = x;
+		/* disable the faulty probe of fglrx driver */ 
+		if (i == 0) *end = NULL;
                 end--;
                 break;
             }
