diff --git a/src/memline.c b/src/memline.c
index f1c2a8a..0eac1cd 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -3662,7 +3662,7 @@
 #ifdef FEAT_PROP_POPUP
     // If there are text properties, make a copy, so that we can update
     // properties in preceding and following lines.
-    if (buf->b_has_textprop && !(flags & ML_DEL_UNDO))
+    if (buf->b_has_textprop && !(flags & (ML_DEL_UNDO | ML_DEL_NOPROP)))
     {
 	size_t	textlen = STRLEN((char_u *)dp + line_start) + 1;
 
@@ -3765,9 +3765,11 @@
     {
 	// Adjust text properties in the line above and below.
 	if (lnum > 1)
-	    adjust_text_props_for_delete(buf, lnum - 1, textprop_save, textprop_save_len, TRUE);
+	    adjust_text_props_for_delete(buf, lnum - 1, textprop_save,
+						      textprop_save_len, TRUE);
 	if (lnum <= buf->b_ml.ml_line_count)
-	    adjust_text_props_for_delete(buf, lnum, textprop_save, textprop_save_len, FALSE);
+	    adjust_text_props_for_delete(buf, lnum, textprop_save,
+						     textprop_save_len, FALSE);
     }
     vim_free(textprop_save);
 #endif
@@ -4021,7 +4023,7 @@
 			     | ML_APPEND_NOPROP
 #endif
 			 );
-		(void)ml_delete_int(buf, lnum, 0);
+		(void)ml_delete_int(buf, lnum, ML_DEL_NOPROP);
 	    }
 	}
 	vim_free(new_line);
diff --git a/src/structs.h b/src/structs.h
index ae2c0b8..d6f4988 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -769,6 +769,7 @@
 // Values for the flags argument of ml_delete_flags().
 #define ML_DEL_MESSAGE	    1	// may give a "No lines in buffer" message
 #define ML_DEL_UNDO	    2	// called from undo, do not update textprops
+#define ML_DEL_NOPROP	    4	// splitting data block, do not update textprops
 
 // Values for the flags argument of ml_append_int().
 #define ML_APPEND_NEW	    1	// starting to edit a new file
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index d1e8f38..e2de3ba 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -1488,5 +1488,27 @@
   prop_type_delete('someprop')
 enddef
 
+" This was calling ml_delete_int() and try to change text properties.
+def Test_prop_add_delete_line()
+  new
+  var a = 10
+  var b = 20
+  repeat([''], a)->append('$')
+  prop_type_add('Test', {highlight: 'ErrorMsg'})
+  for lnum in range(1, a)
+    for col in range(1, b)
+      prop_add(1, 1, {end_lnum: lnum, end_col: col, type: 'Test'})
+    endfor
+  endfor
+
+  # check deleting lines is OK
+  :5del
+  :1del
+  :$del
+
+  prop_type_delete('Test')
+  bwipe!
+enddef
+
 
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index f4f5df3..e311104 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3062,
+/**/
     3061,
 /**/
     3060,
