diff --git a/src/edit.c b/src/edit.c
index ff45bb7..72dc586 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -1966,7 +1966,7 @@
 	if (pc_status == PC_STATUS_RIGHT)
 	    ++curwin->w_wcol;
 	if (pc_status == PC_STATUS_RIGHT || pc_status == PC_STATUS_LEFT)
-	    redrawWinline(curwin->w_cursor.lnum, FALSE);
+	    redrawWinline(curwin, curwin->w_cursor.lnum, FALSE);
 	else
 #endif
 	    screen_puts(pc_bytes, pc_row - msg_scrolled, pc_col, pc_attr);
@@ -2017,7 +2017,7 @@
     if (dollar_vcol >= 0)
     {
 	dollar_vcol = -1;
-	redrawWinline(curwin->w_cursor.lnum, FALSE);
+	redrawWinline(curwin, curwin->w_cursor.lnum, FALSE);
     }
 }
 
@@ -7079,7 +7079,7 @@
 	linenr_T	lnum = spell_redraw_lnum;
 
 	spell_redraw_lnum = 0;
-	redrawWinline(lnum, FALSE);
+	redrawWinline(curwin, lnum, FALSE);
     }
 }
 
diff --git a/src/move.c b/src/move.c
index b2b8486..68f8ae4 100644
--- a/src/move.c
+++ b/src/move.c
@@ -123,6 +123,10 @@
     set_empty_rows(wp, done);
 }
 
+#ifdef FEAT_SYN_HL
+static linenr_T	last_cursorline = 0;
+#endif
+
 /*
  * Redraw when w_cline_row changes and 'relativenumber' or 'cursorline' is
  * set.
@@ -140,7 +144,22 @@
 	    && !pum_visible()
 # endif
 	    )
-	redraw_win_later(wp, SOME_VALID);
+    {
+#ifdef FEAT_SYN_HL
+	if (!wp->w_p_rnu && wp->w_redr_type <= VALID && last_cursorline != 0)
+	{
+	    // "last_cursorline" may be set for another window, worst case we
+	    // redraw too much.  This is optimized for moving the cursor around
+	    // in the same window.
+	    redrawWinline(wp, last_cursorline, FALSE);
+	    redrawWinline(wp, wp->w_cursor.lnum, FALSE);
+	    last_cursorline = wp->w_cursor.lnum;
+	    redraw_win_later(wp, VALID);
+	}
+	else
+#endif
+	    redraw_win_later(wp, SOME_VALID);
+    }
 }
 
 /*
diff --git a/src/proto/screen.pro b/src/proto/screen.pro
index 2b8a6fd..7a10e3b 100644
--- a/src/proto/screen.pro
+++ b/src/proto/screen.pro
@@ -8,7 +8,7 @@
 void redraw_buf_and_status_later(buf_T *buf, int type);
 int redraw_asap(int type);
 void redraw_after_callback(int call_update_screen);
-void redrawWinline(linenr_T lnum, int invalid);
+void redrawWinline(win_T *wp, linenr_T lnum, int invalid);
 void reset_updating_screen(int may_resize_shell);
 void update_curbuf(int type);
 int update_screen(int type_arg);
diff --git a/src/screen.c b/src/screen.c
index c9f9410..f82e1d6 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -496,6 +496,7 @@
  */
     void
 redrawWinline(
+    win_T	*wp,
     linenr_T	lnum,
     int		invalid UNUSED)	/* window line height is invalid now */
 {
@@ -503,19 +504,19 @@
     int		i;
 #endif
 
-    if (curwin->w_redraw_top == 0 || curwin->w_redraw_top > lnum)
-	curwin->w_redraw_top = lnum;
-    if (curwin->w_redraw_bot == 0 || curwin->w_redraw_bot < lnum)
-	curwin->w_redraw_bot = lnum;
-    redraw_later(VALID);
+    if (wp->w_redraw_top == 0 || wp->w_redraw_top > lnum)
+	wp->w_redraw_top = lnum;
+    if (wp->w_redraw_bot == 0 || wp->w_redraw_bot < lnum)
+	wp->w_redraw_bot = lnum;
+    redraw_win_later(wp, VALID);
 
 #ifdef FEAT_FOLDING
     if (invalid)
     {
 	/* A w_lines[] entry for this lnum has become invalid. */
-	i = find_wl_entry(curwin, lnum);
+	i = find_wl_entry(wp, lnum);
 	if (i >= 0)
-	    curwin->w_lines[i].wl_valid = FALSE;
+	    wp->w_lines[i].wl_valid = FALSE;
     }
 #endif
 }
diff --git a/src/version.c b/src/version.c
index 88e50c1..53dbfd9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -795,6 +795,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    372,
+/**/
     371,
 /**/
     370,
