diff --git a/src/nano.c b/src/nano.c
index a1e1370b564506bfa3456521a6452cfecfde031e..93ea9c0ee370de5f143f3c5e9d649dbc8ab65696 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -2707,14 +2707,16 @@ int main(int argc, char **argv)
 	if (ISSET(CONST_UPDATE) && get_key_buffer_len() == 0)
 	    do_cursorpos(TRUE);
 
-	/* Refresh either just the cursor or the entire edit window. */
+	/* Refresh just the cursor position or the entire edit window. */
 	if (!refresh_needed) {
 	    reset_cursor();
-	    curs_set(1);
 	    wnoutrefresh(edit);
 	} else
 	    edit_refresh();
 
+	/* Make sure the cursor is visible. */
+	curs_set(1);
+
 	focusing = TRUE;
 
 	/* Forget any earlier statusbar x position. */
diff --git a/src/winio.c b/src/winio.c
index 3b59cc37684f44baebb5afa356b7172b683edc23..6d68bbf143fbb23f9a847f76792a915fd807c113 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -3018,7 +3018,6 @@ void edit_refresh(void)
 	blank_line(edit, nlines, 0, COLS);
 
     reset_cursor();
-    curs_set(1);
     wnoutrefresh(edit);
 
     refresh_needed = FALSE;