diff --git a/src/drawline.c b/src/drawline.c
index e388bdb..b627192 100644
--- a/src/drawline.c
+++ b/src/drawline.c
@@ -39,25 +39,26 @@
     // cache previous calculations depending on w_virtcol
     static int saved_w_virtcol;
     static win_T *prev_wp;
+    static int prev_width1;
+    static int prev_width2;
     static int prev_left_col;
     static int prev_right_col;
-    static int prev_col_off;
 
     int cur_col_off = win_col_off(wp);
     int	width1;
     int	width2;
 
-    if (saved_w_virtcol == wp->w_virtcol
-	    && prev_wp == wp && prev_col_off == cur_col_off)
+    width1 = wp->w_width - cur_col_off;
+    width2 = width1 + win_col_off2(wp);
+
+    if (saved_w_virtcol == wp->w_virtcol && prev_wp == wp
+	    && prev_width1 == width1 && prev_width2 == width2)
     {
 	*right_col = prev_right_col;
 	*left_col = prev_left_col;
 	return;
     }
 
-    width1 = wp->w_width - cur_col_off;
-    width2 = width1 + win_col_off2(wp);
-
     *left_col = 0;
     *right_col = width1;
 
@@ -70,8 +71,9 @@
     prev_left_col = *left_col;
     prev_right_col = *right_col;
     prev_wp = wp;
+    prev_width1 = width1;
+    prev_width2 = width2;
     saved_w_virtcol = wp->w_virtcol;
-    prev_col_off = cur_col_off;
 }
 #endif
 
diff --git a/src/testdir/dumps/Test_cursorline_screenline_resize_1.dump b/src/testdir/dumps/Test_cursorline_screenline_resize_1.dump
new file mode 100644
index 0000000..dd56362
--- /dev/null
+++ b/src/testdir/dumps/Test_cursorline_screenline_resize_1.dump
@@ -0,0 +1,8 @@
+| +0#af5f00255#ffffff0@1|1| |x+0#0000000&|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y||+1&&| +0&&@23
+| +0#af5f00255&@3|z+0#0000000&| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| ||+1&&|~+0#4040ff13&| @22
+| +0#af5f00255&@3|x+8#0000000&|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z> @18||+1&&|~+0#4040ff13&| @22
+|~| @48||+1#0000000&|~+0#4040ff13&| @22
+|~| @48||+1#0000000&|~+0#4040ff13&| @22
+|~| @48||+1#0000000&|~+0#4040ff13&| @22
+|[+3#0000000&|N|o| |N|a|m|e|]| |[|+|]| @18|1|,|1|2|0| @9|A|l@1| |[+1&&|N|o| |N|a|m|e|]| @2|0|,|0|-|1| @3|A|l@1
+| +0&&@74
diff --git a/src/testdir/dumps/Test_cursorline_screenline_resize_2.dump b/src/testdir/dumps/Test_cursorline_screenline_resize_2.dump
new file mode 100644
index 0000000..466bea3
--- /dev/null
+++ b/src/testdir/dumps/Test_cursorline_screenline_resize_2.dump
@@ -0,0 +1,8 @@
+| +0#af5f00255#ffffff0@1|1| |x+0#0000000&|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y||+1&&| +0&&@27
+| +0#af5f00255&@3|z+0#0000000&| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| ||+1&&|~+0#4040ff13&| @26
+| +0#af5f00255&@3|x+8#0000000&|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z> @6||+1&&|~+0#4040ff13&| @26
+|~| @44||+1#0000000&|~+0#4040ff13&| @26
+|~| @44||+1#0000000&|~+0#4040ff13&| @26
+|~| @44||+1#0000000&|~+0#4040ff13&| @26
+|[+3#0000000&|N|o| |N|a|m|e|]| |[|+|]| @14|1|,|1|2|0| @9|A|l@1| |[+1&&|N|o| |N|a|m|e|]| @4|0|,|0|-|1| @5|A|l@1
+|:+0&&|v|e|r|t|i|c|a|l| |r|e|s|i|z|e| |-|4| @55
diff --git a/src/testdir/dumps/Test_cursorline_screenline_resize_3.dump b/src/testdir/dumps/Test_cursorline_screenline_resize_3.dump
new file mode 100644
index 0000000..47152b6
--- /dev/null
+++ b/src/testdir/dumps/Test_cursorline_screenline_resize_3.dump
@@ -0,0 +1,8 @@
+| +0#af5f00255#ffffff0@1|1| |x+0#0000000&|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y||+1&&| +0&&@27
+|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| ||+1&&|~+0#4040ff13&| @26
+|x+8#0000000&|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z> @14||+1&&|~+0#4040ff13&| @26
+|~| @44||+1#0000000&|~+0#4040ff13&| @26
+|~| @44||+1#0000000&|~+0#4040ff13&| @26
+|~| @44||+1#0000000&|~+0#4040ff13&| @26
+|[+3#0000000&|N|o| |N|a|m|e|]| |[|+|]| @14|1|,|1|2|0| @9|A|l@1| |[+1&&|N|o| |N|a|m|e|]| @4|0|,|0|-|1| @5|A|l@1
+|:+0&&|s|e|t| |c|p|o|p|t|i|o|n|s|+|=|n| @57
diff --git a/src/testdir/test_cursorline.vim b/src/testdir/test_cursorline.vim
index f4c58de..bdde670 100644
--- a/src/testdir/test_cursorline.vim
+++ b/src/testdir/test_cursorline.vim
@@ -268,6 +268,27 @@
   call StopVimInTerminal(buf)
 endfunc
 
+func Test_cursorline_screenline_resize()
+  CheckScreendump
+
+  let lines =<< trim END
+      50vnew
+      call setline(1, repeat('xyz ', 30))
+      setlocal number cursorline cursorlineopt=screenline
+      normal! $
+  END
+  call writefile(lines, 'Xcul_screenline_resize', 'D')
+
+  let buf = RunVimInTerminal('-S Xcul_screenline_resize', #{rows: 8})
+  call VerifyScreenDump(buf, 'Test_cursorline_screenline_resize_1', {})
+  call term_sendkeys(buf, ":vertical resize -4\<CR>")
+  call VerifyScreenDump(buf, 'Test_cursorline_screenline_resize_2', {})
+  call term_sendkeys(buf, ":set cpoptions+=n\<CR>")
+  call VerifyScreenDump(buf, 'Test_cursorline_screenline_resize_3', {})
+
+  call StopVimInTerminal(buf)
+endfunc
+
 func Test_cursorline_screenline_update()
   CheckScreendump
 
diff --git a/src/version.c b/src/version.c
index ba33f43..c1ee2d5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    729,
+/**/
     728,
 /**/
     727,
