diff --git a/src/drawline.c b/src/drawline.c
index 871b09b..6024bad 100644
--- a/src/drawline.c
+++ b/src/drawline.c
@@ -293,16 +293,6 @@
     idx2 = *(int *)s2;
     tp1 = &current_text_props[idx1];
     tp2 = &current_text_props[idx2];
-    pt1 = text_prop_type_by_id(current_buf, tp1->tp_type);
-    pt2 = text_prop_type_by_id(current_buf, tp2->tp_type);
-    if (pt1 == pt2)
-	return 0;
-    if (pt1 == NULL)
-	return -1;
-    if (pt2 == NULL)
-	return 1;
-    if (pt1->pt_priority != pt2->pt_priority)
-	return pt1->pt_priority > pt2->pt_priority ? 1 : -1;
     col1 = tp1->tp_col;
     col2 = tp2->tp_col;
     if (col1 == MAXCOL && col2 == MAXCOL)
@@ -322,6 +312,16 @@
 	if (flags1 != flags2)
 	    return flags1 < flags2 ? 1 : -1;
     }
+    pt1 = text_prop_type_by_id(current_buf, tp1->tp_type);
+    pt2 = text_prop_type_by_id(current_buf, tp2->tp_type);
+    if (pt1 == pt2)
+	return 0;
+    if (pt1 == NULL)
+	return -1;
+    if (pt2 == NULL)
+	return 1;
+    if (pt1->pt_priority != pt2->pt_priority)
+	return pt1->pt_priority > pt2->pt_priority ? 1 : -1;
     return col1 == col2 ? 0 : col1 > col2 ? 1 : -1;
 }
 #endif
@@ -1785,7 +1785,8 @@
 
 				// When 'wrap' is off then for "below" we need
 				// to start a new line explictly.
-				if (!wp->w_p_wrap)
+				if (below && wlv.col > win_col_off(wp)
+							      && !wp->w_p_wrap)
 				{
 				    draw_screen_line(wp, &wlv);
 
diff --git a/src/testdir/dumps/Test_prop_with_text_after_nowrap_1.dump b/src/testdir/dumps/Test_prop_with_text_after_nowrap_1.dump
index 3f5083d..f90110f 100644
--- a/src/testdir/dumps/Test_prop_with_text_after_nowrap_1.dump
+++ b/src/testdir/dumps/Test_prop_with_text_after_nowrap_1.dump
@@ -1,8 +1,10 @@
-|o+0&#ffffff0|n|e| @56
+|o+0&#ffffff0|n|e| +0&#ffd7ff255|A|f|t|e|r| |t|h|e| |t|e|x|t| +0&#ffffff0@31|r+0&#ffd7ff255|i|g|h|t| |h|e|r|e
 | +0#ffffff16#e000002|B|e|l|o|w| |t|h|e| |l|i|n|e| | +0#0000000#ffffff0@43
 |t|w|o| @56
 |a+0&#ffff4012|n|o|t|h|e|r| +0&#ffffff0@52
 |O+0#ffffff16#e000002|n|e| |M|o|r|e| |H|e|r|e| +0#0000000#ffffff0@46
 |t|h|r|e>e| @54
 |~+0#4040ff13&| @58
+|~| @58
+|~| @58
 | +0#0000000&@41|3|,|5| @10|A|l@1| 
diff --git a/src/testdir/dumps/Test_prop_with_text_after_nowrap_2.dump b/src/testdir/dumps/Test_prop_with_text_after_nowrap_2.dump
index 089737c..7030c9c 100644
--- a/src/testdir/dumps/Test_prop_with_text_after_nowrap_2.dump
+++ b/src/testdir/dumps/Test_prop_with_text_after_nowrap_2.dump
@@ -1,8 +1,10 @@
-| +0#0000e05#a8a8a8255@4|o+0#0000000#ffffff0|n|e| @51
+| +0#0000e05#a8a8a8255@4|o+0#0000000#ffffff0|n|e| +0&#ffd7ff255|A|f|t|e|r| |t|h|e| |t|e|x|t| +0&#ffffff0@26|r+0&#ffd7ff255|i|g|h|t| |h|e|r|e
 | +0#0000e05#a8a8a8255@4| +0#ffffff16#e000002|B|e|l|o|w| |t|h|e| |l|i|n|e| | +0#0000000#ffffff0@38
 | +0#0000e05#a8a8a8255@4|t+0#0000000#ffffff0|w|o| @51
 | +0#0000e05#a8a8a8255@4|a+0#0000000#ffff4012|n|o|t|h|e|r| +0&#ffffff0@47
 | +0#0000e05#a8a8a8255@4|O+0#ffffff16#e000002|n|e| |M|o|r|e| |H|e|r|e| +0#0000000#ffffff0@41
 | +0#0000e05#a8a8a8255@4|t+0#0000000#ffffff0|h|r|e>e| @49
 |~+0#4040ff13&| @58
+|~| @58
+|~| @58
 | +0#0000000&@41|3|,|5| @10|A|l@1| 
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index 505d056..2c59f64 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -2434,13 +2434,16 @@
       call setline(1, ['one', 'two', 'three'])
       call prop_type_add('belowprop', #{highlight: 'ErrorMsg'})
       call prop_type_add('anotherprop', #{highlight: 'Search'})
+      call prop_type_add('someprop', #{highlight: 'DiffChange'})
       call prop_add(1, 0, #{type: 'belowprop', text: ' Below the line ', text_align: 'below'})
       call prop_add(2, 0, #{type: 'anotherprop', text: 'another', text_align: 'below'})
       call prop_add(2, 0, #{type: 'belowprop', text: 'One More Here', text_align: 'below'})
+      call prop_add(1, 0, #{type: 'someprop', text: 'right here', text_align: 'right'})
+      call prop_add(1, 0, #{type: 'someprop', text: ' After the text', text_align: 'after'})
       normal G$
   END
   call writefile(lines, 'XscriptPropsAfterNowrap')
-  let buf = RunVimInTerminal('-S XscriptPropsAfterNowrap', #{rows: 8, cols: 60})
+  let buf = RunVimInTerminal('-S XscriptPropsAfterNowrap', #{rows: 10, cols: 60})
   call VerifyScreenDump(buf, 'Test_prop_with_text_after_nowrap_1', {})
 
   call term_sendkeys(buf, ":set signcolumn=yes foldcolumn=3\<CR>")
diff --git a/src/version.c b/src/version.c
index d246cb2..b75d722 100644
--- a/src/version.c
+++ b/src/version.c
@@ -736,6 +736,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    155,
+/**/
     154,
 /**/
     153,
