Index: darkplaces/keys.c
diff -u darkplaces/keys.c:1.21 darkplaces/keys.c:1.22
--- darkplaces/keys.c:1.21	Sun Oct 12 04:43:23 2003
+++ darkplaces/keys.c	Sun Oct 12 05:05:19 2003
@@ -18,6 +18,7 @@
 
 */
 #include "quakedef.h"
+#include <ctype.h>
 
 /*
 
@@ -515,7 +516,7 @@
 	if (!str || !str[0])
 		return -1;
 	if (!str[1])
-		return str[0];
+		return tolower(str[0]);
 
 	for (kn=keynames ; kn->name ; kn++)
 		if (!strcasecmp(str,kn->name))
Index: darkplaces/vid_glx.c
diff -u darkplaces/vid_glx.c:1.52 darkplaces/vid_glx.c:1.53
--- darkplaces/vid_glx.c:1.52	Sun Oct 12 04:43:23 2003
+++ darkplaces/vid_glx.c	Sun Oct 12 05:05:19 2003
@@ -205,6 +205,14 @@
 		case XK_KP_Divide: key = K_KP_SLASH; break;
 
 		default:
+			if (keysym < 32 && keysym > 126)
+				break;
+
+			if (keysym >= 'A' && keysym <= 'Z')
+				key = keysym - 'A' + 'a';
+			else
+				key = keysym;
+
 			break;
 	}
 