File xemacs-level3.patch of Package xemacs

diff -ru xemacs-21.5.20.orig/src/event-Xt.c xemacs-21.5.20/src/event-Xt.c
--- xemacs-21.5.20.orig/src/event-Xt.c	2005-01-25 00:33:52.000000000 +0100
+++ xemacs-21.5.20/src/event-Xt.c	2005-05-12 12:37:18.000000000 +0200
@@ -646,8 +646,17 @@
   syms = &xd->x_keysym_map [(keycode - xd->x_keysym_map_min_code) *
 			   xd->x_keysym_map_keysyms_per_code];
   for (i = 0; i < xd->x_keysym_map_keysyms_per_code; i++)
-    if (IsModifierKey (syms [i]) ||
-	syms [i] == XK_Mode_switch) /* why doesn't IsModifierKey count this? */
+    if (IsModifierKey(syms[i])
+#ifdef XK_Mode_switch
+	 ||  syms[i] == XK_Mode_switch /* why doesn't IsModifierKey count this? */
+#endif
+#ifdef XK_Num_Lock
+	 ||  syms[i] == XK_Num_Lock
+#endif
+#if defined XK_ISO_Lock && defined XK_ISO_Last_Group_Lock
+	 || (syms[i] >= XK_ISO_Lock && syms[i] <= XK_ISO_Last_Group_Lock)
+#endif
+      )
       return 1;
   return 0;
 }
@@ -997,8 +1006,17 @@
          than passing in 0) to avoid crashes on German IRIX */
       char dummy[256];
       XLookupString (event, dummy, 200, &keysym, 0);
-      return (IsModifierKey (keysym) || keysym == XK_Mode_switch )
-	? Qnil : x_keysym_to_emacs_keysym (keysym, simple_p);
+      return (IsModifierKey (keysym)
+#ifdef XK_Mode_switch
+	|| keysym == XK_Mode_switch
+#endif
+#ifdef XK_Num_Lock
+	|| keysym == XK_Num_Lock
+#endif
+#if defined XK_ISO_Lock && defined XK_ISO_Last_Group_Lock
+	|| (keysym >= XK_ISO_Lock && keysym <= XK_ISO_Last_Group_Lock)
+#endif
+	) ? Qnil : x_keysym_to_emacs_keysym (keysym, simple_p);
     }
 #endif /* ! XIM_MOTIF */
 
@@ -1048,8 +1066,17 @@
     {
     case XLookupKeySym:
     case XLookupBoth:
-      return (IsModifierKey (keysym) || keysym == XK_Mode_switch )
-	? Qnil : x_keysym_to_emacs_keysym (keysym, simple_p);
+      return (IsModifierKey (keysym)
+#ifdef XK_Mode_switch
+	|| keysym == XK_Mode_switch
+#endif
+#ifdef XK_Num_Lock
+	|| keysym == XK_Num_Lock
+#endif
+#if defined XK_ISO_Lock && defined XK_ISO_Last_Group_Lock
+	|| (keysym >= XK_ISO_Lock && keysym <= XK_ISO_Last_Group_Lock)
+#endif
+	) ? Qnil : x_keysym_to_emacs_keysym (keysym, simple_p);
 
     case XLookupChars:
       {
diff -ru xemacs-21.5.20.orig/src/xintrinsic.h xemacs-21.5.20/src/xintrinsic.h
--- xemacs-21.5.20.orig/src/xintrinsic.h	2001-04-12 20:24:30.000000000 +0200
+++ xemacs-21.5.20/src/xintrinsic.h	2005-05-12 12:37:18.000000000 +0200
@@ -22,6 +22,7 @@
 #ifndef INCLUDED_xintrinsic_h_
 #define INCLUDED_xintrinsic_h_
 
+#include <X11/keysym.h>
 #include <X11/Intrinsic.h>
 
 #endif /* INCLUDED_xintrinsic_h_ */