--- xemacs-21.4.15/src/event-Xt.c.orig 2004-07-09 11:02:02.000000000 -0400 +++ xemacs-21.4.15/src/event-Xt.c 2004-07-09 11:02:23.000000000 -0400 @@ -1253,7 +1253,26 @@ KeySym bot = XLookupKeysym (ev, Mode_switch_p ? 2 : 0); KeySym top = XLookupKeysym (ev, Mode_switch_p ? 3 : 1); if (top && bot && top != bot) - modifiers &= ~XEMACS_MOD_SHIFT; + // SAM + switch(top) { + case 0x1008fe01: + case 0x1008fe02: + case 0x1008fe03: + case 0x1008fe04: + case 0x1008fe05: + case 0x1008fe06: + case 0x1008fe07: + case 0x1008fe08: + case 0x1008fe09: + case 0x1008fe0a: + case 0x1008fe0b: + case 0x1008fe0c: + break; + default: + modifiers &= ~XEMACS_MOD_SHIFT; + break; + } + //SAM } emacs_event->event_type = key_press_event; emacs_event->timestamp = ev->time;