diff --git a/runtime/doc/textprop.txt b/runtime/doc/textprop.txt
index 6dc58b7..55a5ed3 100644
--- a/runtime/doc/textprop.txt
+++ b/runtime/doc/textprop.txt
@@ -231,6 +231,7 @@
 		{props} is a dictionary with these fields:
 		   id		remove text properties with this ID
 		   type		remove text properties with this type name
+		   both		"id" and "type" must both match
 		   bufnr	use this buffer instead of the current one
 		   all		when TRUE remove all matching text properties,
 				not just the first one
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index 6dbaa53..0f28f0d 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -270,6 +270,23 @@
 
   call DeletePropTypes()
   bwipe!
+
+  new
+  call AddPropTypes()
+  call SetupPropsInFirstLine()
+  call prop_add(1, 6, {'length': 2, 'id': 11, 'type': 'three'})
+  let props = Get_expected_props()
+  call insert(props, {'col': 6, 'length': 2, 'id': 11, 'type': 'three', 'start': 1, 'end': 1}, 3)
+  call assert_equal(props, prop_list(1))
+  call assert_equal(1, prop_remove({'type': 'three', 'id': 11, 'both': 1, 'all': 1}, 1))
+  unlet props[3]
+  call assert_equal(props, prop_list(1))
+
+  call assert_fails("call prop_remove({'id': 11, 'both': 1})", 'E860')
+  call assert_fails("call prop_remove({'type': 'three', 'both': 1})", 'E860')
+
+  call DeletePropTypes()
+  bwipe!
 endfunc
 
 func SetupOneLine()
diff --git a/src/textprop.c b/src/textprop.c
index 3ad84a2..2827af4 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -796,6 +796,7 @@
     int		do_all = FALSE;
     int		id = -1;
     int		type_id = -1;
+    int		both = FALSE;
 
     rettv->vval.v_number = 0;
     if (argvars[0].v_type != VAR_DICT || argvars[0].vval.v_dict == NULL)
@@ -838,11 +839,18 @@
 	    return;
 	type_id = type->pt_id;
     }
+    if (dict_find(dict, (char_u *)"both", -1) != NULL)
+	both = dict_get_number(dict, (char_u *)"both");
     if (id == -1 && type_id == -1)
     {
 	emsg(_("E968: Need at least one of 'id' or 'type'"));
 	return;
     }
+    if (both && (id == -1 || type_id == -1))
+    {
+	emsg(_("E860: Need 'id' and 'type' with 'both'"));
+	return;
+    }
 
     if (end == 0)
 	end = buf->b_ml.ml_line_count;
@@ -868,7 +876,8 @@
 		size_t	taillen;
 
 		mch_memmove(&textprop, cur_prop, sizeof(textprop_T));
-		if (textprop.tp_id == id || textprop.tp_type == type_id)
+		if (both ? textprop.tp_id == id && textprop.tp_type == type_id
+			 : textprop.tp_id == id || textprop.tp_type == type_id)
 		{
 		    if (!(buf->b_ml.ml_flags & ML_LINE_DIRTY))
 		    {
diff --git a/src/version.c b/src/version.c
index 3e7115b..2e3b729 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    357,
+/**/
     356,
 /**/
     355,
