diff --git a/src/screen.c b/src/screen.c
--- a/src/screen.c
+++ b/src/screen.c
@@ -3337,16 +3337,6 @@
     }
 #endif
 
-#ifdef FEAT_SYN_HL
-    /* Cursor line highlighting for 'cursorline'.  Not when Visual mode is
-     * active, because it's not clear what is selected then. */
-    if (wp->w_p_cul && lnum == wp->w_cursor.lnum && !VIsual_active)
-    {
-	line_attr = hl_attr(HLF_CUL);
-	area_highlighting = TRUE;
-    }
-#endif
-
     off = (unsigned)(current_ScreenLine - ScreenLines);
     col = 0;
 #ifdef FEAT_RIGHTLEFT
@@ -4729,6 +4719,16 @@
 	    }
 	}
 
+#ifdef FEAT_SYN_HL
+	/* Cursor line highlighting for 'cursorline'.  Not when Visual mode is
+	 * active, because it's not clear what is selected then. 
+	 * Only highlight the current screen line */
+	if (wp->w_p_cul && vcol/W_WIDTH(wp) == wp->w_cursor.col/W_WIDTH(wp)
+		&& lnum == wp->w_cursor.lnum && !VIsual_active)
+	    char_attr = hl_combine_attr(char_attr, HLF_CLN);
+#endif
+
+
 	/*
 	 * At end of the text line.
 	 */
