diff --git a/client.c b/client.c
index a017e7a7..5ad15321 100644
--- a/client.c
+++ b/client.c
@@ -36,7 +36,7 @@
 void	client_handle_winch(struct client_ctx *);
 
 int
-client_init(char *path, struct client_ctx *cctx, int start_server, int flags)
+client_init(char *path, struct client_ctx *cctx, int cmdflags, int flags)
 {
 	struct sockaddr_un		sa;
 	struct stat			sb;
@@ -53,7 +53,7 @@ client_init(char *path, struct client_ctx *cctx, int start_server, int flags)
 	setproctitle("client (%s)", rpathbuf);
 
 	if (lstat(path, &sb) != 0) {
-		if (start_server && errno == ENOENT) {
+		if (cmdflags & CMD_STARTSERVER && errno == ENOENT) {
 			if ((cctx->srv_fd = server_start(path)) == -1)
 				goto start_failed;
 			goto server_started;
@@ -79,7 +79,7 @@ client_init(char *path, struct client_ctx *cctx, int start_server, int flags)
 	if (connect(
 	    cctx->srv_fd, (struct sockaddr *) &sa, SUN_LEN(&sa)) == -1) {
 		if (errno == ECONNREFUSED) {
-			if (unlink(path) != 0 || !start_server)
+			if (unlink(path) != 0 || !(cmdflags & CMD_STARTSERVER))
 				goto not_found;
 			if ((cctx->srv_fd = server_start(path)) == -1)
 				goto start_failed;
diff --git a/tmux.c b/tmux.c
index 9ca1783f..2a155d57 100644
--- a/tmux.c
+++ b/tmux.c
@@ -213,7 +213,7 @@ main(int argc, char **argv)
 	struct passwd		*pw;
 	char			*s, *path, *label, *cause, *home, *pass = NULL;
 	char			 cwd[MAXPATHLEN];
-	int	 		 retcode, opt, flags, unlock, start_server;
+	int	 		 retcode, opt, flags, unlock, cmdflags = 0;
 
 	unlock = flags = 0;
 	label = path = NULL;
@@ -390,7 +390,7 @@ main(int argc, char **argv)
 		cmdlist = NULL;
 		if ((pass = getpass("Password: ")) == NULL)
 			exit(1);
-		start_server = 0;
+		cmdflags &= ~CMD_STARTSERVER;
 	} else {
 		if (argc == 0) {
 			cmd = xmalloc(sizeof *cmd);
@@ -407,17 +407,16 @@ main(int argc, char **argv)
 				exit(1);
 			}
 		}
-		start_server = 0;
 		TAILQ_FOREACH(cmd, cmdlist, qentry) {
 			if (cmd->entry->flags & CMD_STARTSERVER) {
-				start_server = 1;
+				cmdflags |= CMD_STARTSERVER;
 				break;
 			}
 		}
 	}
 
  	memset(&cctx, 0, sizeof cctx);
-	if (client_init(path, &cctx, start_server, flags) != 0)
+	if (client_init(path, &cctx, cmdflags, flags) != 0)
 		exit(1);
 	xfree(path);