diff --git a/cmd-display-panes.c b/cmd-display-panes.c
index aa665f08..df97819c 100644
--- a/cmd-display-panes.c
+++ b/cmd-display-panes.c
@@ -204,7 +204,7 @@ cmd_display_panes_key(struct client *c, struct key_event *event)
 	struct cmd_parse_result		*pr;
 
 	if (event->key < '0' || event->key > '9')
-		return (1);
+		return (-1);
 
 	wp = window_pane_at_index(w, event->key - '0');
 	if (wp == NULL)
diff --git a/layout.c b/layout.c
index 6e78b439..e84da936 100644
--- a/layout.c
+++ b/layout.c
@@ -272,7 +272,7 @@ layout_fix_panes(struct window *w)
 		wp->xoff = lc->xoff;
 		wp->yoff = lc->yoff;
 
-		if (shift && status == 1)
+		if (shift && status == PANE_STATUS_TOP)
 			wp->yoff += 1;
 
 		window_pane_resize(wp, lc->sx, lc->sy - shift);
@@ -1021,7 +1021,7 @@ layout_spread_cell(struct window *w, struct layout_cell *parent)
 
 	number = 0;
 	TAILQ_FOREACH (lc, &parent->cells, entry)
-	    number++;
+		number++;
 	if (number <= 1)
 		return (0);
 	status = options_get_number(w->options, "pane-border-status");
diff --git a/server-client.c b/server-client.c
index da30ed83..3f908eca 100644
--- a/server-client.c
+++ b/server-client.c
@@ -1218,9 +1218,13 @@ server_client_handle_key(struct client *c, struct key_event *event)
 	 * blocked so they need to be processed immediately rather than queued.
 	 */
 	if ((~c->flags & CLIENT_READONLY) && c->overlay_key != NULL) {
-		if (c->overlay_key(c, event) != 0)
+		switch (c->overlay_key(c, event)) {
+		case 0:
+			return (0);
+		case 1:
 			server_client_clear_overlay(c);
-		return (0);
+			return (0);
+		}
 	}
 
 	/*
diff --git a/window.c b/window.c
index 10f3ca7f..bf2ef78e 100644
--- a/window.c
+++ b/window.c
@@ -1369,7 +1369,7 @@ window_pane_find_down(struct window_pane *wp)
 		if (edge >= w->sy - 1)
 			edge = 0;
 	} else {
-		if (edge >= wp->sy)
+		if (edge >= w->sy)
 			edge = 0;
 	}