336a7e7
--- xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c.jx	2007-04-16 12:53:50.000000000 -0400
336a7e7
+++ xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c	2007-05-02 14:03:28.000000000 -0400
336a7e7
@@ -1202,6 +1202,23 @@
336a7e7
     return output;
336a7e7
 }
336a7e7
 
336a7e7
+static char *
336a7e7
+preferredMode(ScrnInfoPtr pScrn, xf86OutputPtr output)
336a7e7
+{
336a7e7
+    char *preferred_mode = NULL;
336a7e7
+
336a7e7
+    /* Check for a configured preference for a particular mode */
336a7e7
+    preferred_mode = xf86GetOptValString (output->options,
336a7e7
+					  OPTION_PREFERRED_MODE);
336a7e7
+    if (preferred_mode)
336a7e7
+	return preferred_mode;
336a7e7
+
336a7e7
+    if (pScrn->display->modes && *pScrn->display->modes)
336a7e7
+	preferred_mode = *pScrn->display->modes;
336a7e7
+
336a7e7
+    return preferred_mode;
336a7e7
+}
336a7e7
+
336a7e7
 #define DEBUG_REPROBE 1
336a7e7
 
336a7e7
 void
336a7e7
@@ -1377,8 +1394,7 @@
336a7e7
 	output->probed_modes = xf86SortModes (output->probed_modes);
336a7e7
 	
336a7e7
 	/* Check for a configured preference for a particular mode */
336a7e7
-	preferred_mode = xf86GetOptValString (output->options,
336a7e7
-					      OPTION_PREFERRED_MODE);
336a7e7
+	preferred_mode = preferredMode(scrn, output);
336a7e7
 
336a7e7
 	if (preferred_mode)
336a7e7
 	{