File xemacs-21.4.8-xevent.patch of Package xemacs

--- src/event-Xt.c
+++ src/event-Xt.c	2003-09-02 17:39:09.000000000 +0200
@@ -1249,9 +1249,13 @@
 	       However, "F1" normally does. */
 	    if (modifiers & XEMACS_MOD_SHIFT)
 	      {
-		int Mode_switch_p = *state & xd->ModeMask;
-		KeySym bot = XLookupKeysym (ev, Mode_switch_p ? 2 : 0);
-		KeySym top = XLookupKeysym (ev, Mode_switch_p ? 3 : 1);
+		KeySym top, bot;
+		XKeyEvent tmpev = *ev;
+
+		tmpev.state = *state & (xd->ModeMask | ~0xff);
+		XLookupString(&tmpev, NULL, 0, &bot, NULL);
+		tmpev.state |= ShiftMask;
+		XLookupString(&tmpev, NULL, 0, &top, NULL);
 		if (top && bot && top != bot)
 		  modifiers &= ~XEMACS_MOD_SHIFT;
 	      }