diff --git a/src/charset.c b/src/charset.c
index b245bd7..27213e9 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1094,6 +1094,7 @@
     int		tab_corr = (*s == TAB);
     int		n;
     char_u	*sbr;
+    int		no_sbr = FALSE;
 #endif
 
 #if defined(FEAT_PROP_POPUP)
@@ -1155,7 +1156,7 @@
 		    if (tp->tp_col == MAXCOL)
 		    {
 			int below = (tp->tp_flags & TP_FLAG_ALIGN_BELOW);
-			int	wrap = (tp->tp_flags & TP_FLAG_WRAP);
+			int wrap = (tp->tp_flags & TP_FLAG_WRAP);
 			int len = (int)STRLEN(p);
 			int n_used = len;
 
@@ -1168,6 +1169,9 @@
 			// "after"
 			if (below)
 			    cells += wp->w_width - (vcol + size) % wp->w_width;
+#ifdef FEAT_LINEBREAK
+			no_sbr = TRUE;  // don't use 'showbreak' now
+#endif
 		    }
 		    cts->cts_cur_text_width += cells;
 		    size += cells;
@@ -1242,7 +1246,7 @@
      * Do not use 'showbreak' at the NUL after the text.
      */
     added = 0;
-    sbr = c == NUL ? empty_option : get_showbreak_value(wp);
+    sbr = (c == NUL || no_sbr) ? empty_option : get_showbreak_value(wp);
     if ((*sbr != NUL || wp->w_p_bri) && wp->w_p_wrap && vcol != 0)
     {
 	colnr_T sbrlen = 0;
diff --git a/src/drawline.c b/src/drawline.c
index 6024bad..26b52d3 100644
--- a/src/drawline.c
+++ b/src/drawline.c
@@ -1722,7 +1722,7 @@
 				// don't combine char attr after EOL
 				text_prop_flags &= ~PT_FLAG_COMBINE;
 #ifdef FEAT_LINEBREAK
-			    if (below || right)
+			    if (below || right || !wrap)
 			    {
 				// no 'showbreak' before "below" text property
 				// or after "right" text property
diff --git a/src/testdir/dumps/Test_prop_with_text_after_below_trunc_1.dump b/src/testdir/dumps/Test_prop_with_text_after_below_trunc_1.dump
new file mode 100644
index 0000000..e254ac0
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_with_text_after_below_trunc_1.dump
@@ -0,0 +1,8 @@
+|o+0&#ffffff0|n|a|s|d|f| |a|s|d|f| |a|s|d|f| |a|s|d|f| |a|s|d| |f|a|s| |d|f|t+0#e000e06&|h|e| |q|u|i|c|k| |b|r|o|w|n| |f|o|x| |j|u|m|p|s| |o|…
+|t|h|e| |q|u|i|c|k| |b|r|o|w|n| |f|o|x| |j|u|m|p|s| |o|v|e|r| |t|h|e| |l|a|z|y| |d|o|g| +0#0000000&@16
+|t|w>o| @56
+|~+0#4040ff13&| @58
+|~| @58
+|~| @58
+|~| @58
+|"+0#0000000&|f|o@1|b|a|r|"| |[|N|e|w|]| @27|2|,|3| @10|A|l@1| 
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index 2c59f64..484cb3c 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -2336,6 +2336,35 @@
   call delete('XscriptPropsWithTextAfter')
 endfunc
 
+func Test_props_with_text_after_below_trunc()
+  CheckRunVimInTerminal
+
+  let lines =<< trim END
+      vim9script
+      edit foobar
+      set showbreak=+++
+      setline(1, ['onasdf asdf asdf asdf asd fas df', 'two'])
+      prop_type_add('test', {highlight: 'Special'})
+      prop_add(1, 0, {
+          type: 'test',
+          text: 'the quick brown fox jumps over the lazy dog',
+          text_align: 'after'
+      })
+      prop_add(1, 0, {
+          type: 'test',
+          text: 'the quick brown fox jumps over the lazy dog',
+          text_align: 'below'
+      })
+      normal G$
+  END
+  call writefile(lines, 'XscriptPropsAfterTrunc')
+  let buf = RunVimInTerminal('-S XscriptPropsAfterTrunc', #{rows: 8, cols: 60})
+  call VerifyScreenDump(buf, 'Test_prop_with_text_after_below_trunc_1', {})
+
+  call StopVimInTerminal(buf)
+  call delete('XscriptPropsAfterTrunc')
+endfunc
+
 func Test_props_with_text_after_joined()
   CheckRunVimInTerminal
 
diff --git a/src/version.c b/src/version.c
index 196f3e6..667b607 100644
--- a/src/version.c
+++ b/src/version.c
@@ -736,6 +736,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    157,
+/**/
     156,
 /**/
     155,
