diff -Nru xorg-server-1.12.1.orig/hw/xfree86/common/xf86Config.c xorg-server-1.12.1/hw/xfree86/common/xf86Config.c --- xorg-server-1.12.1.orig/hw/xfree86/common/xf86Config.c 2012-03-30 04:57:26.000000000 +0200 +++ xorg-server-1.12.1/hw/xfree86/common/xf86Config.c 2012-04-24 12:24:57.966283561 +0200 @@ -514,7 +514,7 @@ static void fixup_video_driver_list(char **drivers) { - static const char *fallback[4] = { "vesa", "fbdev", "wsfb", NULL }; + static const char *fallback[6] = { "fglrx", "modesetting", "fbdev", "vesa", "wsfb", NULL }; char **end, **drv; char *x; int i; @@ -528,9 +528,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; + /* disable the faulty probe of fglrx driver */ + if (i == 0) *end = NULL; *drv = *end; *end = x; end--;