diff --git a/status.c b/status.c
index 4ea42f1c..96110c77 100644
--- a/status.c
+++ b/status.c
@@ -121,12 +121,17 @@ status_set_window_at(struct client *c, u_int x)
 {
 	struct session	*s = c->session;
 	struct winlink	*wl;
+	struct options	*oo;
+	size_t		 len;
 
 	x += c->wlmouse;
 	RB_FOREACH(wl, winlinks, &s->windows) {
+		oo = &wl->window->options;
+
+		len = strlen(options_get_string(oo, "window-status-separator"));
 		if (x < wl->status_width && session_select(s, wl->idx) == 0)
 			server_redraw_session(s);
-		x -= wl->status_width + 1;
+		x -= wl->status_width + len;
 	}
 }