--- drivers/macintosh/adbhid.c	2005-03-02 08:38:33.000000000 +0100
+++ ../linux-2.6-ol/drivers/macintosh/adbhid.c	2005-02-28 21:38:39.000000000 +0100
@@ -285,17 +285,26 @@
 {
 	struct adbhid *ahid = adbhid[id];
 	int up_flag;
+ 	static int caps_lock_down = 0;
+ 
+ 	if (keycode == 0x39) {
+ 		caps_lock_down = 0x80;
+ 	} else if (keycode == 0xff) {
+		keycode = 0x39 | caps_lock_down;
+		caps_lock_down = 0x0;
+ 	}
 
 	up_flag = (keycode & 0x80);
 	keycode &= 0x7f;
 
 	switch (keycode) {
 	case ADB_KEY_CAPSLOCK: /* Generate down/up events for CapsLock everytime. */
-		input_regs(&ahid->input, regs);
+		break;
+/*		input_regs(&ahid->input, regs);
 		input_report_key(&ahid->input, KEY_CAPSLOCK, 1);
 		input_report_key(&ahid->input, KEY_CAPSLOCK, 0);
 		input_sync(&ahid->input);
-		return;
+		return;*/
 #ifdef CONFIG_PPC_PMAC
 	case ADB_KEY_POWER_OLD: /* Power key on PBook 3400 needs remapping */
 		switch(pmac_call_feature(PMAC_FTR_GET_MB_INFO,
