diff --git a/config.mk b/config.mk
index bc89b16..7beebff 100644
--- a/config.mk
+++ b/config.mk
@@ -1,5 +1,5 @@
 # dmenu version
-VERSION = 1.7
+VERSION = 1.7.1
 
 # Customize below to fit your system
 
diff --git a/main.c b/main.c
index 964fad6..3ea9d89 100644
--- a/main.c
+++ b/main.c
@@ -200,11 +200,13 @@ kpress(XKeyEvent * e) {
 		}
 		break;
 	case XK_End:
+		if(!sel)
+			return;
 		while(next) {
 			sel = curr = next;
 			calcoffsets();
 		}
-		while(sel->right)
+		while(sel && sel->right)
 			sel = sel->right;
 		break;
 	case XK_Escape:
@@ -212,6 +214,8 @@ kpress(XKeyEvent * e) {
 		running = False;
 		break;
 	case XK_Home:
+		if(!item)
+			return;
 		sel = curr = item;
 		calcoffsets();
 		break;
@@ -225,16 +229,16 @@ kpress(XKeyEvent * e) {
 		}
 		break;
 	case XK_Next:
-		if(next) {
-			sel = curr = next;
-			calcoffsets();
-		}
+		if(!next)
+			return;
+		sel = curr = next;
+		calcoffsets();
 		break;
 	case XK_Prior:
-		if(prev) {
-			sel = curr = prev;
-			calcoffsets();
-		}
+		if(!prev)
+			return;
+		sel = curr = prev;
+		calcoffsets();
 		break;
 	case XK_Return:
 		if((e->state & ShiftMask) && text)