diff -bBdaur xscreensaver-4.24-orig/driver/windows.c xscreensaver-4.24/driver/windows.c
--- xscreensaver-4.24-orig/driver/windows.c	2005-10-22 06:27:08.000000000 +0200
+++ xscreensaver-4.24/driver/windows.c	2007-01-20 20:54:53.000000000 +0100
@@ -233,7 +233,16 @@
   Status mstatus = 0, kstatus = 0;
   int i;
   int retries = 4;
-  Bool focus_fuckus = False;
+	
+	/* We can only nuke_focus() if we're using any of the extensions
+		 or /proc/interrupts. Otherwise, we might be blanking screen in
+		 the middle of user activity that we didn't notice because other
+		 client has a grab
+	*/
+  Bool focus_fuckus = !(si->using_xidle_extension ||
+												si->using_mit_saver_extension ||
+												si->using_sgi_saver_extension ||
+												si->using_proc_interrupts);
 
  AGAIN:
 
