diff --git a/src/winio.c b/src/winio.c
index 1f010d07d506458a283f2f24738d294a4f3b7de7..5b88ef7a9b3ed590bc75984122936707ae67ea78 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -2914,16 +2914,17 @@ void edit_scroll(scroll_dir direction, int nrows)
     if (direction == DOWNWARD)
 	go_forward_chunks(editwinrows - nrows, &line, &leftedge);
 
-    /* Draw new content on the blank rows inside the scrolled region
-     * (and on the bordering row too when it was deemed necessary). */
     i = nrows;
-    while (i > 0 && line != NULL) {
 #ifndef NANO_TINY
-	/* If the first blank row is in the middle of a softwrapped line,
-	 * compensate for the earlier onscreen chunks of that line. */
-	if (ISSET(SOFTWRAP) && i == nrows && line != openfile->edittop)
-	    i += leftedge / editwincols;
+    /* Compensate for the earlier onscreen chunks of a softwrapped line
+     * when the first blank row happens to be in the middle of that line. */
+    if (ISSET(SOFTWRAP) && line != openfile->edittop)
+	i += leftedge / editwincols;
 #endif
+
+    /* Draw new content on the blank rows inside the scrolled region
+     * (and on the bordering row too when it was deemed necessary). */
+    while (i > 0 && line != NULL) {
 	i -= update_line(line, (line == openfile->current) ?
 				openfile->current_x : 0);
 	line = line->next;