diff --git a/cmd-command-prompt.c b/cmd-command-prompt.c
index 7e3d23c5..4943bc15 100644
--- a/cmd-command-prompt.c
+++ b/cmd-command-prompt.c
@@ -79,6 +79,8 @@ cmd_command_prompt_exec(struct cmd *self, struct cmdq_item *item)
 
 	if (tc->prompt_string != NULL)
 		return (CMD_RETURN_NORMAL);
+	if (args_has(args, 'i'))
+		wait = 0;
 
 	cdata = xcalloc(1, sizeof *cdata);
 	cdata->idx = 1;
diff --git a/cmd-pipe-pane.c b/cmd-pipe-pane.c
index f3fe6344..ae410d6e 100644
--- a/cmd-pipe-pane.c
+++ b/cmd-pipe-pane.c
@@ -44,7 +44,7 @@ const struct cmd_entry cmd_pipe_pane_entry = {
 	.alias = "pipep",
 
 	.args = { "IOot:", 0, 1 },
-	.usage = "[-IOo] " CMD_TARGET_PANE_USAGE " [command]",
+	.usage = "[-IOo] " CMD_TARGET_PANE_USAGE " [shell-command]",
 
 	.target = { 't', CMD_FIND_PANE, 0 },
 
diff --git a/control.c b/control.c
index 7a5b9eb2..97f8b761 100644
--- a/control.c
+++ b/control.c
@@ -664,7 +664,7 @@ control_write_pending(struct client *c, struct control_pane *cp, size_t limit)
 	uint64_t		 age, t = get_timer();
 
 	wp = control_window_pane(c, cp->pane);
-	if (wp == NULL) {
+	if (wp == NULL || wp->fd == -1) {
 		TAILQ_FOREACH_SAFE(cb, &cp->blocks, entry, cb1) {
 			TAILQ_REMOVE(&cp->blocks, cb, entry);
 			control_free_block(cs, cb);
@@ -864,7 +864,7 @@ control_check_subs_pane(struct client *c, struct control_sub *csub)
 	struct control_sub_pane	*csp, find;
 
 	wp = window_pane_find_by_id(csub->id);
-	if (wp == NULL)
+	if (wp == NULL || wp->fd == -1)
 		return;
 	w = wp->window;