diff -ruN linux-2.6.9.old/drivers/char/keyboard.c linux-2.6.9/drivers/char/keyboard.c
--- linux-2.6.9.old/drivers/char/keyboard.c	2004-10-18 23:55:36.000000000 +0200
+++ linux-2.6.9/drivers/char/keyboard.c	2004-11-27 09:30:50.950440408 +0200
@@ -1073,10 +1073,11 @@
 
 #ifdef CONFIG_MAGIC_SYSRQ	       /* Handle the SysRq Hack */
 	if (keycode == KEY_SYSRQ && (sysrq_down || (down == 1 && sysrq_alt))) {
-		sysrq_down = down;
+		sysrq_down = 1;
 		return;
 	}
 	if (sysrq_down && down && !rep) {
+		sysrq_down = 0;
 		handle_sysrq(kbd_sysrq_xlate[keycode], regs, tty);
 		return;
 	}
