diff --git a/popup.c b/popup.c
index 6d2a0c6c..48a61450 100644
--- a/popup.c
+++ b/popup.c
@@ -489,8 +489,6 @@ popup_key_cb(struct client *c, void *data, struct key_event *event)
 	size_t			 len;
 	u_int			 px, py, x;
 	enum { NONE, LEFT, RIGHT, TOP, BOTTOM } border = NONE;
-	struct window		*w;
-	struct window_pane	*wp;
 
 	if (pd->md != NULL) {
 		if (menu_key_cb(c, pd->md, event) == 1) {
@@ -509,20 +507,16 @@ popup_key_cb(struct client *c, void *data, struct key_event *event)
 			popup_handle_drag(c, pd, m);
 			goto out;
 		}
-		w = c->session->curw->window;
-		wp = w->active;
 		if (m->x < pd->px ||
 		    m->x > pd->px + pd->sx - 1 ||
 		    m->y < pd->py ||
 		    m->y > pd->py + pd->sy - 1) {
 			if (MOUSE_BUTTONS(m->b) == MOUSE_BUTTON_3)
 				goto menu;
-			wp->flags |= PANE_FOCUSED;
-			pd->flags &= ~POPUP_FOCUSED;
+			c->flags &= ~CLIENT_OVERLAYPOPUP_FOCUSED;
 			return (0);
 		}
-		wp->flags &= ~PANE_FOCUSED;
-		pd->flags |= POPUP_FOCUSED;
+		c->flags |= CLIENT_OVERLAYPOPUP_FOCUSED;
 		if (pd->border_lines != BOX_LINES_NONE) {
 			if (m->x == pd->px)
 				border = LEFT;
@@ -569,7 +563,7 @@ popup_key_cb(struct client *c, void *data, struct key_event *event)
 			bufferevent_write(job_get_event(pd->job), buf, len);
 			return (0);
 		}
-		if (pd->flags & POPUP_FOCUSED)
+		if (c->flags & CLIENT_OVERLAYPOPUP_FOCUSED)
 			input_key(&pd->s, job_get_event(pd->job), event->key);
 	}
 	return (0);
@@ -734,7 +728,7 @@ popup_display(int flags, enum box_lines lines, struct cmdq_item *item, u_int px,
 
 	server_client_set_overlay(c, 0, popup_check_cb, popup_mode_cb,
 	    popup_draw_cb, popup_key_cb, popup_free_cb, popup_resize_cb, pd);
-	pd->flags |= POPUP_FOCUSED;
+	c->flags |= CLIENT_OVERLAYPOPUP_FOCUSED;
 	return (0);
 }
 
diff --git a/server-client.c b/server-client.c
index ffeb690b..28e7d7af 100644
--- a/server-client.c
+++ b/server-client.c
@@ -2630,7 +2630,7 @@ server_client_handle_key(struct client *c, struct key_event *event)
 		if (c->overlay_key != NULL) {
 			done = c->overlay_key(c, c->overlay_data, event);
 			TAILQ_FOREACH(wp, &c->session->curw->window->panes, entry) {
-				if (wp->flags & PANE_FOCUSED)
+				if (~c->flags & CLIENT_OVERLAYPOPUP_FOCUSED)
 					goto focused;
 			}
 			if (done)
@@ -2915,7 +2915,7 @@ server_client_reset_state(struct client *c)
 	tty->flags &= ~TTY_BLOCK;
 
 	/* Get mode from overlay if any, else from screen. */
-	if (c->overlay_draw != NULL && ~wp->flags & PANE_FOCUSED) {
+	if (c->overlay_draw != NULL && c->flags & CLIENT_OVERLAYPOPUP_FOCUSED) {
 		if (c->overlay_mode != NULL)
 			s = c->overlay_mode(c, c->overlay_data, &cx, &cy);
 	} else if (c->prompt_string == NULL)
@@ -2946,7 +2946,7 @@ server_client_reset_state(struct client *c)
 				cy = tty->sy - n;
 		}
 		cx = c->prompt_cursor;
-	} else if (c->overlay_draw == NULL || wp->flags & PANE_FOCUSED) {
+	} else if (c->overlay_draw == NULL || ~c->flags & CLIENT_OVERLAYPOPUP_FOCUSED) {
 		cursor = 0;
 		tty_window_offset(tty, &ox, &oy, &sx, &sy);
 		if (wp->xoff + s->cx >= ox && wp->xoff + s->cx <= ox + sx &&
diff --git a/tmux.h b/tmux.h
index 73c4ba44..c7602533 100644
--- a/tmux.h
+++ b/tmux.h
@@ -1982,6 +1982,7 @@ struct client {
 #define CLIENT_ASSUMEPASTING 0x2000000000ULL
 #define CLIENT_REDRAWSCROLLBARS 0x4000000000ULL
 #define CLIENT_NO_DETACH_ON_DESTROY 0x8000000000ULL
+#define CLIENT_OVERLAYPOPUP_FOCUSED 0x10000000000ULL
 #define CLIENT_ALLREDRAWFLAGS		\
 	(CLIENT_REDRAWWINDOW|		\
 	 CLIENT_REDRAWSTATUS|		\
@@ -3555,7 +3556,6 @@ int		 menu_key_cb(struct client *, void *, struct key_event *);
 #define POPUP_CLOSEEXIT 0x1
 #define POPUP_CLOSEEXITZERO 0x2
 #define POPUP_INTERNAL 0x4
-#define POPUP_FOCUSED 0x8
 typedef void (*popup_close_cb)(int, void *);
 typedef void (*popup_finish_edit_cb)(char *, size_t, void *);
 int		 popup_display(int, enum box_lines, struct cmdq_item *, u_int,