diff --git a/src/buffer.c b/src/buffer.c
index 1c55acb..68b4a04 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5733,6 +5733,10 @@
 #endif
 	if (buf->b_fname != NULL)
 	    return buf->b_fname;
+#ifdef FEAT_JOB_CHANNEL
+	if (bt_prompt(buf))
+	    return (char_u *)_("[Prompt]");
+#endif
 	return (char_u *)_("[Scratch]");
     }
 
diff --git a/src/edit.c b/src/edit.c
index 76cbfce..7c7fadd 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -1411,11 +1411,10 @@
 #ifdef FEAT_JOB_CHANNEL
 	    if (bt_prompt(curbuf))
 	    {
-		buf_T *buf = curbuf;
-
 		invoke_prompt_callback();
-		if (curbuf != buf)
-		    // buffer changed, get out of Insert mode
+		if (!bt_prompt(curbuf))
+		    // buffer changed to a non-prompt buffer, get out of
+		    // Insert mode
 		    goto doESCkey;
 		break;
 	    }
@@ -1906,6 +1905,8 @@
 	coladvance((colnr_T)MAXCOL);
     if (cmdchar_todo == 'I' || curwin->w_cursor.col <= (int)STRLEN(prompt))
 	curwin->w_cursor.col = STRLEN(prompt);
+    /* Make sure the cursor is in a valid position. */
+    check_cursor();
 }
 
 /*
@@ -9467,7 +9468,7 @@
 
     /* If deleted before the insertion point, adjust it */
     if (curwin->w_cursor.lnum == Insstart_orig.lnum
-				       && curwin->w_cursor.col < Insstart_orig.col)
+				  && curwin->w_cursor.col < Insstart_orig.col)
 	Insstart_orig.col = curwin->w_cursor.col;
 
     /* vi behaviour: the cursor moves backward but the character that
@@ -9517,6 +9518,11 @@
 	     * previous one to stop insert there properly. */
 	    curwin = old_curwin;
 	    curbuf = curwin->w_buffer;
+#ifdef FEAT_JOB_CHANNEL
+	    if (bt_prompt(curbuf))
+		// Restart Insert mode when re-entering the prompt buffer.
+		curbuf->b_prompt_insert = 'A';
+#endif
 	}
 	start_arrow(curwin == old_curwin ? &tpos : NULL);
 	if (curwin != new_curwin && win_valid(new_curwin))
diff --git a/src/version.c b/src/version.c
index c7c5bfd..8f17fac 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    36,
+/**/
     35,
 /**/
     34,
diff --git a/src/window.c b/src/window.c
index f86d11e..27ef9d5 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2115,12 +2115,21 @@
     // When leaving the window (or closing the window) was done from a
     // callback we need to break out of the Insert mode loop.
     if (State & INSERT)
+    {
 	stop_insert_mode = TRUE;
+	if (bt_prompt(win->w_buffer) && win->w_buffer->b_prompt_insert == NUL)
+	    win->w_buffer->b_prompt_insert = 'A';
+    }
 }
 
     static void
 entering_window(win_T *win)
 {
+    // When switching to a prompt buffer that was in Insert mode, don't stop
+    // Insert mode, it may have been set in leaving_window().
+    if (bt_prompt(win->w_buffer) && win->w_buffer->b_prompt_insert != NUL)
+	stop_insert_mode = FALSE;
+
     // When entering the prompt window may restart Insert mode.
     restart_edit = win->w_buffer->b_prompt_insert;
 }
