diff --git a/src/screen.c b/src/screen.c
index 862a635..eb81bee 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -3059,6 +3059,7 @@
     int		text_props_active = 0;
     proptype_T  *text_prop_type = NULL;
     int		text_prop_attr = 0;
+    int		text_prop_combine = FALSE;
 #endif
 #ifdef FEAT_SPELL
     int		has_spell = FALSE;	/* this buffer has spell checking */
@@ -4261,6 +4262,7 @@
 		    text_prop_idxs[text_props_active++] = text_prop_next++;
 
 		text_prop_attr = 0;
+		text_prop_combine = FALSE;
 		if (text_props_active > 0)
 		{
 		    // Sort the properties on priority and/or starting last.
@@ -4273,17 +4275,17 @@
 		    for (pi = 0; pi < text_props_active; ++pi)
 		    {
 			int	    tpi = text_prop_idxs[pi];
-			proptype_T  *pt = text_prop_type_by_id(wp->w_buffer, text_props[tpi].tp_type);
+			proptype_T  *pt = text_prop_type_by_id(
+					wp->w_buffer, text_props[tpi].tp_type);
 
 			if (pt != NULL)
 			{
 			    int pt_attr = syn_id2attr(pt->pt_hl_id);
 
 			    text_prop_type = pt;
-			    if (text_prop_attr == 0)
-				text_prop_attr = pt_attr;
-			    else
-				text_prop_attr = hl_combine_attr(text_prop_attr, pt_attr);
+			    text_prop_attr =
+				      hl_combine_attr(text_prop_attr, pt_attr);
+			    text_prop_combine = pt->pt_flags & PT_FLAG_COMBINE;
 			}
 		    }
 		}
@@ -4314,7 +4316,13 @@
 		attr_pri = FALSE;
 #ifdef FEAT_TEXT_PROP
 		if (text_prop_type != NULL)
-		    char_attr = text_prop_attr;
+		{
+		    if (text_prop_combine)
+			char_attr = hl_combine_attr(
+						  syntax_attr, text_prop_attr);
+		    else
+			char_attr = text_prop_attr;
+		}
 		else
 #endif
 #ifdef FEAT_SYN_HL
@@ -4664,14 +4672,18 @@
 		    ptr = line + v;
 
 # ifdef FEAT_TEXT_PROP
-		    // Text properties overrule syntax highlighting.
-		    if (text_prop_attr == 0)
-#endif
+		    // Text properties overrule syntax highlighting or combine.
+		    if (text_prop_attr == 0 || text_prop_combine)
+# endif
 		    {
+			int comb_attr = syntax_attr;
+# ifdef FEAT_TEXT_PROP
+			comb_attr = hl_combine_attr(text_prop_attr, comb_attr);
+# endif
 			if (!attr_pri)
-			    char_attr = syntax_attr;
+			    char_attr = comb_attr;
 			else
-			    char_attr = hl_combine_attr(syntax_attr, char_attr);
+			    char_attr = hl_combine_attr(comb_attr, char_attr);
 		    }
 # ifdef FEAT_CONCEAL
 		    /* no concealing past the end of the line, it interferes
diff --git a/src/structs.h b/src/structs.h
index c992e2a..fa8a765 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -727,6 +727,7 @@
 
 #define PT_FLAG_INS_START_INCL	1	// insert at start included in property
 #define PT_FLAG_INS_END_INCL	2	// insert at end included in property
+#define PT_FLAG_COMBINE		4	// combine with syntax highlight
 
 // Sign group
 typedef struct signgroup_S
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index eab7aaa..a48aa91 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -559,14 +559,23 @@
     return
   endif
   call writefile([
-	\ "call setline(1, ['One two', 'Numbér 123 änd thœn 4¾7.', '--aa--bb--cc--dd--'])",
+	\ "call setline(1, ["
+	\	.. "'One two',"
+	\	.. "'Numbér 123 änd thœn 4¾7.',"
+	\	.. "'--aa--bb--cc--dd--',"
+	\	.. "'// comment with error in it',"
+	\	.. "])",
 	\ "hi NumberProp ctermfg=blue",
 	\ "hi LongProp ctermbg=yellow",
+	\ "hi BackgroundProp ctermbg=lightgrey",
+	\ "hi UnderlineProp cterm=underline",
 	\ "call prop_type_add('number', {'highlight': 'NumberProp'})",
 	\ "call prop_type_add('long', {'highlight': 'LongProp'})",
 	\ "call prop_type_add('start', {'highlight': 'NumberProp', 'start_incl': 1})",
 	\ "call prop_type_add('end', {'highlight': 'NumberProp', 'end_incl': 1})",
 	\ "call prop_type_add('both', {'highlight': 'NumberProp', 'start_incl': 1, 'end_incl': 1})",
+	\ "call prop_type_add('background', {'highlight': 'BackgroundProp', 'combine': 1})",
+	\ "call prop_type_add('error', {'highlight': 'UnderlineProp', 'combine': 1})",
 	\ "call prop_add(1, 4, {'end_lnum': 3, 'end_col': 3, 'type': 'long'})",
 	\ "call prop_add(2, 9, {'length': 3, 'type': 'number'})",
 	\ "call prop_add(2, 24, {'length': 4, 'type': 'number'})",
@@ -574,13 +583,17 @@
 	\ "call prop_add(3, 7, {'length': 2, 'type': 'start'})",
 	\ "call prop_add(3, 11, {'length': 2, 'type': 'end'})",
 	\ "call prop_add(3, 15, {'length': 2, 'type': 'both'})",
+	\ "call prop_add(4, 12, {'length': 10, 'type': 'background'})",
+	\ "call prop_add(4, 17, {'length': 5, 'type': 'error'})",
 	\ "set number",
 	\ "hi clear SpellBad",
 	\ "set spell",
+	\ "syn match Comment '//.*'",
+	\ "hi Comment ctermfg=green",
 	\ "normal 3G0llix\<Esc>lllix\<Esc>lllix\<Esc>lllix\<Esc>lllix\<Esc>lllix\<Esc>lllix\<Esc>lllix\<Esc>",
 	\ "normal 3G0lli\<BS>\<Esc>",
 	\], 'XtestProp')
-  let buf = RunVimInTerminal('-S XtestProp', {'rows': 6})
+  let buf = RunVimInTerminal('-S XtestProp', {'rows': 7})
   call VerifyScreenDump(buf, 'Test_textprop_01', {})
 
   " clean up
diff --git a/src/version.c b/src/version.c
index 6838624..3e2f472 100644
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1276,
+/**/
     1275,
 /**/
     1274,
