diff --git a/src/prompt.c b/src/prompt.c
index d131742e135aa437326224c06f443e11cb3a5d43..837d5309ccfb44acaa8dd0cb6d4b1731d720d3e9 100644
--- a/src/prompt.c
+++ b/src/prompt.c
@@ -145,12 +145,17 @@ int do_statusbar_input(bool *ran_func, bool *finished,
 		do_statusbar_home();
 	    else if (s->scfunc == do_end)
 		do_statusbar_end();
+	    else if (ISSET(RESTRICTED) && currmenu == MWRITEFILE &&
+				openfile->filename[0] != '\0' &&
+				(s->scfunc == do_verbatim_input ||
+				s->scfunc == do_cut_text_void ||
+				s->scfunc == do_delete ||
+				s->scfunc == do_backspace))
+		/* When in restricted mode and at the "Write File" prompt
+		 * and the filename isn't blank, disallow verbatim input
+		 * and disallow all forms of deletion. */
+		;
 	    else if (s->scfunc == do_verbatim_input) {
-		/* If we're using restricted mode, the filename
-		 * isn't blank, and we're at the "Write File"
-		 * prompt, disable verbatim input. */
-		if (!ISSET(RESTRICTED) || currmenu != MWRITEFILE ||
-			openfile->filename[0] == '\0') {
 		    bool got_newline = FALSE;
 			/* Whether we got a verbatim ^J. */
 
@@ -164,27 +169,11 @@ int do_statusbar_input(bool *ran_func, bool *finished,
 			input = sc_seq_or(do_enter, 0);
 			*finished = TRUE;
 		    }
-		}
 	    } else if (s->scfunc == do_cut_text_void) {
-		/* If we're using restricted mode, the filename
-		 * isn't blank, and we're at the "Write File"
-		 * prompt, disable Cut. */
-		if (!ISSET(RESTRICTED) || openfile->filename[0] == '\0' ||
-			currmenu != MWRITEFILE)
 		    do_statusbar_cut_text();
 	    } else if (s->scfunc == do_delete) {
-		/* If we're using restricted mode, the filename
-		 * isn't blank, and we're at the "Write File"
-		 * prompt, disable Delete. */
-		if (!ISSET(RESTRICTED) || openfile->filename[0] == '\0' ||
-			currmenu != MWRITEFILE)
 		    do_statusbar_delete();
 	    } else if (s->scfunc == do_backspace) {
-		/* If we're using restricted mode, the filename
-		 * isn't blank, and we're at the "Write File"
-		 * prompt, disable Backspace. */
-		if (!ISSET(RESTRICTED) || openfile->filename[0] == '\0' ||
-			currmenu != MWRITEFILE)
 		    do_statusbar_backspace();
 	    } else {
 		/* Handle any other shortcut in the current menu, setting