diff -r 24fe17a14d34 config.mk
--- a/config.mk	Sun Nov 25 12:17:33 2007 +0100
+++ b/config.mk	Sun Jan 27 16:06:26 2008 +0100
@@ -11,7 +11,7 @@ X11LIB = /usr/X11R6/lib
 
 # includes and libs
 INCS = -I. -I/usr/include -I${X11INC}
-LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11
+LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11 -lXext
 
 # flags
 CFLAGS = -Os ${INCS} -DVERSION=\"${VERSION}\" -DHAVE_SHADOW_H
diff -r 24fe17a14d34 slock.c
--- a/slock.c	Sun Nov 25 12:17:33 2007 +0100
+++ b/slock.c	Sun Jan 27 16:06:26 2008 +0100
@@ -16,6 +16,7 @@
 #include <X11/keysym.h>
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
+#include <X11/extensions/dpms.h>
 
 void
 eprint(const char *errstr, ...) {
@@ -109,7 +110,9 @@ main(int argc, char **argv) {
 	XSync(dpy, False);
 
 	/* main event loop */
-	while(running && !XNextEvent(dpy, &ev))
+	while(running && !XNextEvent(dpy, &ev)) {
+		if(len == 0) 
+			DPMSForceLevel(dpy, DPMSModeOff);
 		if(ev.type == KeyPress) {
 			buf[0] = 0;
 			num = XLookupString(&ev.xkey, buf, sizeof buf, &ksym, 0);
@@ -139,6 +142,7 @@ main(int argc, char **argv) {
 				break;
 			}
 		}
+	}
 	XUngrabPointer(dpy, CurrentTime);
 	XFreePixmap(dpy, pmap);
 	XDestroyWindow(dpy, w);
