diff --git a/ChangeLog b/ChangeLog
index 7a702d0d3de957b51b9e6018f952cd2897c5f478..73f0a01e752c516cff8df053aa0bb1cdc30b14ac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -179,14 +179,8 @@ CVS code -
 	  the "$" on subsequent pages. (DLR)
   reset_cursor()
 	- Tweak for efficiency. (David Benbennick)
-  update_line()
-	- Move leaveok() calls here from edit_refresh(), since the
-	  places where they were used in edit_refresh() mainly affected
-	  the update_line()s. (DLR)
   edit_refresh()
 	- Tweak for efficiency. (David Benbennick)
-	- Remove the aforementioned leaveok() calls from this function.
-	  (DLR)
   do_credits()
 	- Use nanosleep() instead of usleep().  The latter is only
 	  standard under BSD, whereas the former is POSIX compliant.
diff --git a/src/winio.c b/src/winio.c
index c33a2ecb09cb2ceb208839fd5161c994d408dd2b..27ad4edf938f8006c5614901f1fe693cfe489672 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -1875,9 +1875,6 @@ void update_line(const filestruct *fileptr, size_t index)
     if (line < 0 || line >= editwinrows)
 	return;
 
-    /* Don't make the cursor jump around the screen while updating. */
-    leaveok(edit, TRUE);
-
     /* First, blank out the line (at a minimum) */
     mvwaddstr(edit, line, 0, hblank);
 
@@ -1898,9 +1895,6 @@ void update_line(const filestruct *fileptr, size_t index)
 	mvwaddch(edit, line, 0, '$');
     if (strlenpt(fileptr->data) > page_start + COLS)
 	mvwaddch(edit, line, COLS - 1, '$');
-
-    /* Let the cursor jump around the screen again. */
-    leaveok(edit, FALSE);
 }
 
 /* This function updates current, based on where current_y is;
@@ -1957,6 +1951,10 @@ void edit_refresh(void)
 	fprintf(stderr, "edit_refresh(): edittop->lineno = %ld\n", edittop->lineno);
 #endif
 
+	/* Don't let the cursor jump around the screen while
+	 * updating. */
+	leaveok(edit, TRUE);
+
 	while (nlines < editwinrows) {
 	    update_line(foo, current_x);
 	    nlines++;
@@ -1972,6 +1970,9 @@ void edit_refresh(void)
 	/* What the hell are we expecting to update the screen if this
 	 * isn't here?  Luck? */
 	wrefresh(edit);
+
+	/* Let the cursor jump around the screen again. */
+	leaveok(edit, FALSE);
     }
 }