diff --git a/dmenu.c b/dmenu.c
index 1d239c2..ec62602 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -354,45 +354,36 @@ kpress(XKeyEvent * e) {
 		return;
 	/* first check if a control mask is omitted */
 	if(e->state & ControlMask) {
-		switch (ksym) {
+		switch(tolower(ksym)) {
 		default:	/* ignore other control sequences */
 			return;
 		case XK_a:
-		case XK_A:
 			ksym = XK_Home;
 			break;
 		case XK_c:
-		case XK_C:
 			ksym = XK_Escape;
 			break;
 		case XK_e:
-		case XK_E:
 			ksym = XK_End;
 			break;
 		case XK_h:
-		case XK_H:
 			ksym = XK_BackSpace;
 			break;
 		case XK_i:
-		case XK_I:
 			ksym = XK_Tab;
 			break;
 		case XK_j:
-		case XK_J:
 			ksym = XK_Return;
 			break;
 		case XK_k:
-		case XK_K:
 			text[cursor] = '\0';
 			break;
 		case XK_u:
-		case XK_U:
 			memmove(text, text + cursor, sizeof text - cursor + 1);
 			cursor = 0;
 			match(text);
 			break;
 		case XK_w:
-		case XK_W:
 			if(cursor > 0) {
 				i = cursor;
 				while(i-- > 0 && text[i] == ' ');