diff --git a/src/nano.c b/src/nano.c
index c192f94143e361d77c28b66f57eecc859f8f5c24..a1e1370b564506bfa3456521a6452cfecfde031e 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -1401,9 +1401,7 @@ void do_toggle(int flag)
 	    signal_init();
 	    break;
 	case WHITESPACE_DISPLAY:
-	    titlebar(NULL);
-	    edit_refresh();
-	    break;
+	    titlebar(NULL);	/* Fall through. */
 #ifndef DISABLE_COLOR
 	case NO_COLOR_SYNTAX:
 #endif
diff --git a/src/search.c b/src/search.c
index f137ffbb3f2f38046fdddba762af39fa53f681de..5a6c16e57654316d7c285837a2c463ec817a79a3 100644
--- a/src/search.c
+++ b/src/search.c
@@ -103,7 +103,7 @@ void search_replace_abort(void)
 {
 #ifndef NANO_TINY
     if (openfile->mark_set)
-	edit_refresh();
+	refresh_needed = TRUE;
 #endif
 #ifdef HAVE_REGEX_H
     regexp_cleanup();
@@ -826,8 +826,7 @@ void do_replace(void)
     openfile->edittop = edittop_save;
     openfile->current = begin;
     openfile->current_x = begin_x;
-
-    edit_refresh();
+    refresh_needed = TRUE;
 
     if (numreplaced >= 0)
 	statusline(HUSH, P_("Replaced %lu occurrence",
diff --git a/src/text.c b/src/text.c
index 077130090b8e5ee0e331f5ec6a9a03b25f8a114d..4d3cae0b10d0b0d5c196cd1335b316c028f1b392 100644
--- a/src/text.c
+++ b/src/text.c
@@ -63,8 +63,8 @@ void do_mark(void)
 	statusbar(_("Mark Unset"));
 	openfile->mark_begin = NULL;
 	openfile->mark_begin_x = 0;
+	refresh_needed = TRUE;
     }
-    edit_refresh();
 }
 #endif /* !NANO_TINY */