--- /usr/bin/xscreensaver.kss.orig	2005-01-22 16:31:04.000000000 +0100
+++ /usr/bin/xscreensaver.kss	2005-01-22 18:00:11.000000000 +0100
@@ -28,6 +28,41 @@
 bindir="${exec_prefix}/bin"
 hackdir="/usr/lib/xscreensaver"
 
+gethack() {
+    if [ ! -f $HOME/.xscreensaver ]; then
+	return 1
+    fi
+    num=`awk '/^selected:/{print $2; exit}' $HOME/.xscreensaver`
+    if [ -z "$num" ]; then
+	return 1
+    fi
+    num=`expr $num + 1`
+    sed -n '/^programs:/,/^[a-zA-Z0-9]*:/{
+	/^programs:/b;
+	/^[a-zA-Z0-9]*:/b;
+	s/^-[ 	]//;
+	s/^[^:]*: //;
+	s/[ 	]*"[^"]*"//;
+	p
+    }' $HOME/.xscreensaver | awk 'BEGIN {
+	counter=0
+	sstring=""
+    } {
+	x=$0
+	sub(/\\$/,"",x)
+	sstring=sstring x
+	if(/\\n/) {
+	    counter++
+	    if(counter == end) {
+		sub(/\\n/,"",sstring)
+		print sstring
+		exit
+	    }
+	    sstring=""
+	}
+    }' end=$num
+}
+
 while [ -n "$1" ]; do
   case "$1" in
 
@@ -95,6 +130,13 @@
         lockmode="-lock-mode"
 #      fi
       ;;
+      -root)
+	PATH=$PATH:$hackdir
+	export PATH
+	hack=`gethack`
+	$hack
+	exit
+      ;;
 #    -allow-root)
 #      echo "Not yet supported"
 #      ;;
