diff --git a/src/omapfb-driver.c b/src/omapfb-driver.c
-index 7a57221..fa97724 100644
+index 7a57221..62f5ccb 100644
--- a/src/omapfb-driver.c
+++ b/src/omapfb-driver.c
-@@ -788,7 +788,13 @@ OMAPFBLeaveVT(int scrnIndex, int flags)
+@@ -788,7 +788,34 @@ OMAPFBLeaveVT(int scrnIndex, int flags)
static Bool
OMAPFBSaveScreen(ScreenPtr pScreen, int mode)
{
- xf86Msg(X_NOT_IMPLEMENTED, "%s: Dim backlight?\n", __FUNCTION__);
+ /* call Pandora specific script */
++ static int blanking;
+ char cmd[256];
++ int arg;
+
-+ snprintf(cmd, sizeof(cmd), "/usr/pandora/scripts/op_lid.sh %d",
-+ (mode == SCREEN_SAVER_ON || mode == SCREEN_SAVER_CYCLE) ? 1 : 0);
++ switch (mode) {
++ case SCREEN_SAVER_CYCLE:
++ if (blanking)
++ return TRUE;
++ /* fallthrough */
++ case SCREEN_SAVER_ON:
++ arg = 1;
++ break;
++
++ default:
++ case SCREEN_SAVER_FORCER:
++ if (!blanking)
++ return TRUE;
++ /* fallthrough */
++ case SCREEN_SAVER_OFF:
++ arg = 0;
++ break;
++ }
++
++ snprintf(cmd, sizeof(cmd), "/usr/pandora/scripts/op_lid.sh %d", arg);
+ system(cmd);
++ blanking = arg;
+
return TRUE;
}