diff --git a/src/prompt.c b/src/prompt.c
index 991999fe231fa3bdf137dc977c91a54881a3fd52..1e3466741a07e8e4a7883b7636f55a77acb0aba7 100644
--- a/src/prompt.c
+++ b/src/prompt.c
@@ -779,6 +779,10 @@ int do_yesno_prompt(bool all, const char *msg)
 
 	wnoutrefresh(bottomwin);
 
+	/* When not replacing, show the cursor. */
+	if (!all)
+	    curs_set(1);
+
 	currmenu = MYESNO;
 	kbinput = get_kbinput(bottomwin);
 
diff --git a/src/text.c b/src/text.c
index 4d3cae0b10d0b0d5c196cd1335b316c028f1b392..a7cba86ff9359c3b482efa8f5fd6f11359de01ad 100644
--- a/src/text.c
+++ b/src/text.c
@@ -3375,8 +3375,6 @@ void do_linter(void)
 			sprintf(msg, _("This message is for unopened file %s,"
 					" open it in a new buffer?"),
 				curlint->filename);
-			/* Show a cursor after the question. */
-			curs_set(1);
 			i = do_yesno_prompt(FALSE, msg);
 			free(msg);
 			if (i == -1) {
diff --git a/src/winio.c b/src/winio.c
index 6d68bbf143fbb23f9a847f76792a915fd807c113..dec687af1027df1d2561639bfe2bdae1194e22a6 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -2085,9 +2085,6 @@ void warn_and_shortly_pause(const char *msg)
     statusbar(msg);
     beep();
     napms(1800);
-
-    /* Switch the cursor back on after displaying the message. */
-    curs_set(1);
 }
 
 /* Display a message on the statusbar, and set suppress_cursorpos to