diff -up xf86-video-mga-1.6.2/src/mga_driver.c.jx xf86-video-mga-1.6.2/src/mga_driver.c
--- xf86-video-mga-1.6.2/src/mga_driver.c.jx	2013-05-20 16:14:10.000000000 -0400
+++ xf86-video-mga-1.6.2/src/mga_driver.c	2013-05-20 16:14:48.381607479 -0400
@@ -2004,7 +2004,12 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
     xf86DrvMsg(pScrn->scrnIndex, from, "Using %s cursor\n",
         pMga->HWCursor ? "HW" : "SW");
 
-    if (xf86ReturnOptValBool(pMga->Options, OPTION_NOACCEL, FALSE)) {
+    if (xf86ReturnOptValBool(pMga->Options, OPTION_SHADOW_FB, TRUE)) {
+	pMga->ShadowFB = TRUE;
+	pMga->NoAccel = TRUE;
+	xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
+		"Using \"Shadow Framebuffer\" - acceleration disabled\n");
+    } else if (xf86ReturnOptValBool(pMga->Options, OPTION_NOACCEL, FALSE)) {
 	pMga->NoAccel = TRUE;
 	xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Acceleration disabled\n");
     } else {
@@ -2051,12 +2056,6 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
 			  (1 << pScrn->offset.green) |
         (((pScrn->mask.blue >> pScrn->offset.blue) - 1) << pScrn->offset.blue);
     }
-    if (xf86ReturnOptValBool(pMga->Options, OPTION_SHADOW_FB, FALSE)) {
-	pMga->ShadowFB = TRUE;
-	pMga->NoAccel = TRUE;
-	xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
-		"Using \"Shadow Framebuffer\" - acceleration disabled\n");
-    }
     if (xf86ReturnOptValBool(pMga->Options, OPTION_OVERCLOCK_MEM, FALSE)) {
 	pMga->OverclockMem = TRUE;
 	xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Overclocking memory\n");
