diff --git a/src/drawline.c b/src/drawline.c
index 0c6b9ab..b0980e5 100644
--- a/src/drawline.c
+++ b/src/drawline.c
@@ -335,7 +335,6 @@
     int	    padding = tp->tp_col == MAXCOL && tp->tp_len > 1
 				  ? tp->tp_len - 1 : 0;
     int	    col_with_padding = vcol + (below ? 0 : padding);
-    int	    col_off = 0;
     int	    room = wp->w_width - col_with_padding;
     int	    before = room;	// spaces before the text
     int	    after = 0;		// spaces after the text
@@ -347,6 +346,9 @@
 
     if (wrap || right || above || below || padding > 0 || n_used < *n_extra)
     {
+	int	    col_off = win_col_off(wp) + win_col_off2(wp);
+	int	    skip_add = 0;
+
 	if (above)
 	{
 	    before = 0;
@@ -366,19 +368,19 @@
 		if (right && (wrap || room < PROP_TEXT_MIN_CELLS))
 		{
 		    // right-align on next line instead of wrapping if possible
-		    col_off = win_col_off(wp) + win_col_off2(wp);
 		    before = wp->w_width - col_off - strsize + room;
 		    if (before < 0)
 			before = 0;
 		    else
 			n_used = *n_extra;
+		    skip_add = col_off;
 		}
 		else
 		    before = 0;
 	    }
 	    else if (below && before > 0)
 		// include 'number' column et al.
-		col_off = win_col_off(wp) + win_col_off2(wp);
+		skip_add = col_off;
 	}
 
 	// With 'nowrap' add one to show the "extends" character if needed (it
@@ -388,6 +390,8 @@
 		&& wp->w_lcs_chars.ext != NUL
 		&& wp->w_p_list)
 	    ++n_used;
+	if (!wp->w_p_wrap && below && padding > 0)
+	    skip_add = col_off;
 
 	// add 1 for NUL, 2 for when '…' is used
 	if (n_attr != NULL)
@@ -441,7 +445,7 @@
 		*n_attr = mb_charlen(*p_extra);
 		if (above)
 		    *n_attr -= padding + after;
-		*n_attr_skip = before + padding + col_off;
+		*n_attr_skip = before + padding + skip_add;
 	    }
 	}
     }
diff --git a/src/testdir/dumps/Test_prop_below_split_line_3.dump b/src/testdir/dumps/Test_prop_below_split_line_3.dump
new file mode 100644
index 0000000..df881af
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_below_split_line_3.dump
@@ -0,0 +1,8 @@
+| +0#af5f00255#ffffff0@1|1| |o+0#0000000&|n|e| |o|n|e| |o|n|e| @59
+| +0#af5f00255&@1|2| |t+0#0000000&|w|o| |t|w|o| |t|w|o| @59
+| +0#af5f00255&@3| +0#0000000&@2|└+0&#ffff4012|─| |V|i|r|t|u|a|l| |t|e|x|t| |b|e|l|o|w| |t|h|e| |2|n|d| |l|i|n|e| +0&#ffffff0@33
+| +0#af5f00255&@1|3| |x+0#0000000&>x| @68
+| +0#af5f00255&@1|4| |t+0#0000000&|h|r|e@1| |t|h|r|e@1| |t|h|r|e@1| @53
+|~+0#4040ff13&| @73
+|~| @73
+|:+0#0000000&|s|e|t| |n|o|w|r|a|p| @45|3|,|2| @10|A|l@1| 
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index 452d9d2..ef612fa 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -2925,6 +2925,9 @@
   call term_sendkeys(buf, "\<Esc>:set number\<CR>")
   call VerifyScreenDump(buf, 'Test_prop_below_split_line_2', {})
 
+  call term_sendkeys(buf, ":set nowrap\<CR>")
+  call VerifyScreenDump(buf, 'Test_prop_below_split_line_3', {})
+
   call StopVimInTerminal(buf)
 endfunc
 
diff --git a/src/version.c b/src/version.c
index 684f959..05dc50c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    518,
+/**/
     517,
 /**/
     516,
