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 f90110f..610f14f 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
@@ -3,7 +3,9 @@
 |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
+|t|h|r|e>e| @41|r+0&#ffff4012|i|g|h|t| |a|l|i|g|n|e|d
+| +0&#ffffff0@41|a+0&#ffff4012|l|s|o| |r|i|g|h|t| |a|l|i|g|n|e|d
+|f+0&#ffffff0|o|u|r| @55
 |~+0#4040ff13&| @58
 |~| @58
 |~| @58
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 7030c9c..48da426 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
@@ -3,7 +3,9 @@
 | +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#0000e05#a8a8a8255@4|t+0#0000000#ffffff0|h|r|e>e| @36|r+0&#ffff4012|i|g|h|t| |a|l|i|g|n|e|d
+| +0#0000e05#a8a8a8255@4| +0#0000000#ffffff0@36|a+0&#ffff4012|l|s|o| |r|i|g|h|t| |a|l|i|g|n|e|d
+| +0#0000e05#a8a8a8255@4|f+0#0000000#ffffff0|o|u|r| @50
 |~+0#4040ff13&| @58
 |~| @58
 |~| @58
diff --git a/src/testdir/dumps/Test_prop_with_text_after_nowrap_3.dump b/src/testdir/dumps/Test_prop_with_text_after_nowrap_3.dump
new file mode 100644
index 0000000..d96f1ec
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_with_text_after_nowrap_3.dump
@@ -0,0 +1,12 @@
+| +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@1| @36|r+0&#ffff4012|i|g|h|t| |a|l|i|g|n|e|d
+| +0#0000e05#a8a8a8255@4| +0#0000000#ffffff0@36|a+0&#ffff4012|l|s|o| |r|i|g|h|t| |a|l|i|g|n|e|d
+| +0#0000e05#a8a8a8255@4|f+0#0000000#ffffff0|o|u>r| @50
+|~+0#4040ff13&| @58
+|~| @58
+|~| @58
+| +0#0000000&@41|4|,|4| @10|A|l@1| 
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index b012f69..5e9dd20 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -2743,7 +2743,7 @@
 
   let lines =<< trim END
       set nowrap
-      call setline(1, ['one', 'two', 'three'])
+      call setline(1, ['one', 'two', 'three', 'four'])
       call prop_type_add('belowprop', #{highlight: 'ErrorMsg'})
       call prop_type_add('anotherprop', #{highlight: 'Search'})
       call prop_type_add('someprop', #{highlight: 'DiffChange'})
@@ -2752,15 +2752,21 @@
       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$
+      normal 3G$
+
+      call prop_add(3, 0, #{type: 'anotherprop', text: 'right aligned', text_align: 'right'})
+      call prop_add(3, 0, #{type: 'anotherprop', text: 'also right aligned', text_align: 'right'})
   END
   call writefile(lines, 'XscriptPropsAfterNowrap')
-  let buf = RunVimInTerminal('-S XscriptPropsAfterNowrap', #{rows: 10, cols: 60})
+  let buf = RunVimInTerminal('-S XscriptPropsAfterNowrap', #{rows: 12, cols: 60})
   call VerifyScreenDump(buf, 'Test_prop_with_text_after_nowrap_1', {})
 
   call term_sendkeys(buf, ":set signcolumn=yes foldcolumn=3\<CR>")
   call VerifyScreenDump(buf, 'Test_prop_with_text_after_nowrap_2', {})
 
+  call term_sendkeys(buf, "j")
+  call VerifyScreenDump(buf, 'Test_prop_with_text_after_nowrap_3', {})
+
   call StopVimInTerminal(buf)
   call delete('XscriptPropsAfterNowrap')
 endfunc
diff --git a/src/textprop.c b/src/textprop.c
index 7d594da..88156c2 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -590,6 +590,8 @@
 
 /*
  * Return the number of text properties with "below" alignment in line "lnum".
+ * A "right" aligned property also goes below after a "below" or other "right"
+ * aligned property.
  */
     int
 prop_count_below(buf_T *buf, linenr_T lnum)
@@ -599,14 +601,25 @@
     int		result = 0;
     textprop_T	prop;
     int		i;
+    int		next_right_goes_below = FALSE;
 
     if (count == 0)
 	return 0;
     for (i = 0; i < count; ++i)
     {
 	mch_memmove(&prop, props + i * sizeof(prop), sizeof(prop));
-	if (prop.tp_col == MAXCOL && (prop.tp_flags & TP_FLAG_ALIGN_BELOW))
-	    ++result;
+	if (prop.tp_col == MAXCOL)
+	{
+	    if ((prop.tp_flags & TP_FLAG_ALIGN_BELOW)
+		    || (next_right_goes_below
+				     && (prop.tp_flags & TP_FLAG_ALIGN_RIGHT)))
+	    {
+		next_right_goes_below = TRUE;
+		++result;
+	    }
+	    else if (prop.tp_flags & TP_FLAG_ALIGN_RIGHT)
+		next_right_goes_below = TRUE;
+	}
     }
     return result;
 }
diff --git a/src/version.c b/src/version.c
index 2d1b5cc..0c7a102 100644
--- a/src/version.c
+++ b/src/version.c
@@ -736,6 +736,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    200,
+/**/
     199,
 /**/
     198,
