--- ./savage_driver.h.~1.9.4.8.~	2004-02-20 18:25:19.000000000 +0100
+++ ./savage_driver.h	2004-02-21 00:02:21.000000000 +0100
@@ -427,6 +427,7 @@
 
 void SavageSetTextMode( SavagePtr psav );
 void SavageSetVESAMode( SavagePtr psav, int n, int Refresh );
+void SavageSetPanelEnabled( SavagePtr psav, int active );
 void SavageFreeBIOSModeTable( SavagePtr psav, SavageModeTablePtr* ppTable );
 SavageModeTablePtr SavageGetBIOSModeTable( SavagePtr psav, int iDepth );
 
--- ./savage_vbe.c.~1.2.4.5.~	2004-02-20 18:25:19.000000000 +0100
+++ ./savage_vbe.c	2004-02-21 00:02:10.000000000 +0100
@@ -124,6 +124,22 @@
 }
 
 
+void
+SavageSetPanelEnabled( SavagePtr psav, int active )
+{
+    int iDevInfo = SavageGetDevice( psav );
+    if (active && (psav->iDevInfo & LCD_ACTIVE))
+	iDevInfo |= LCD_ACTIVE;
+    else
+	iDevInfo &= ~LCD_ACTIVE;
+    SavageClearVM86Regs( psav->pInt10 );
+    psav->pInt10->ax = 0x4f14;	/* S3 extensions */
+    psav->pInt10->bx = 0x0003;	/* set active devices */
+    psav->pInt10->cx = iDevInfo;
+    xf86ExecX86int10( psav->pInt10 );
+}
+
+
 /* Function to get supported device list. */
 
 static int SavageGetDevice( SavagePtr psav )
--- ./savage_driver.c.~1.11.4.14.~	2004-02-20 21:12:04.000000000 +0100
+++ ./savage_driver.c	2004-02-21 00:03:35.000000000 +0100
@@ -3566,6 +3566,9 @@
 	    break;
     }
 
+    if (!psav->CrtOnly)
+	SavageSetPanelEnabled(psav, (mode == DPMSModeOn));
+
     VGAOUT8(0x3c4, 0x0d);
     VGAOUT8(0x3c5, srd);
 
