diff --git a/src/edit.c b/src/edit.c
index c67f67c..d2e45dd 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -5601,14 +5601,20 @@
 	    i = cursor->col - fpos.col;
 	    if (i > 0)
 	    {
-		STRMOVE(ptr, ptr + i);
+#ifdef FEAT_PROP_POPUP
+		if (!(State & VREPLACE_FLAG))
+		{
+		    mch_memmove(ptr, ptr + i, curbuf->b_ml.ml_line_len - i
+					   - (ptr - curbuf->b_ml.ml_line_ptr));
+		    curbuf->b_ml.ml_line_len -= i;
+		}
+		else
+#endif
+		    STRMOVE(ptr, ptr + i);
 		// correct replace stack.
 		if ((State & REPLACE_FLAG) && !(State & VREPLACE_FLAG))
 		    for (temp = i; --temp >= 0; )
 			replace_join(repl_off);
-#ifdef FEAT_PROP_POPUP
-		curbuf->b_ml.ml_line_len -= i;
-#endif
 	    }
 #ifdef FEAT_NETBEANS_INTG
 	    if (netbeans_active())
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index ded56a8..54b42c1 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -925,3 +925,39 @@
   call assert_equal(expected, prop_list(1))
   bwipe!
 endfunc
+
+func Test_textprop_noexpandtab()
+  %bwipe!
+  new
+  let save_ts = &tabstop
+  set tabstop=8
+  let save_sts = &softtabstop
+  set softtabstop=4
+  let save_sw = &shiftwidth
+  set shiftwidth=4
+  let save_et = &expandtab
+  set noexpandtab
+  let save_fdm = &foldmethod
+  set foldmethod=marker
+  call feedkeys("\<esc>\<esc>0Ca\<cr>\<esc>\<up>", "tx")
+  call prop_type_add('test', {'highlight': 'ErrorMsg'})
+  call prop_add(1, 1, {'end_col': 2, 'type': 'test'})
+  call feedkeys("0i\<tab>", "tx")
+  call prop_remove({'type': 'test'})
+  call prop_add(1, 2, {'end_col': 3, 'type': 'test'})
+  call feedkeys("A\<left>\<tab>", "tx")
+  call prop_remove({'type': 'test'})
+  try
+    " It is correct that this does not pass
+    call prop_add(1, 6, {'end_col': 7, 'type': 'test'})
+    " Has already collapsed here, start_col:6 does not result in an error
+    call feedkeys("A\<left>\<tab>", "tx")
+  catch /^Vim\%((\a\+)\)\=:E964/
+  endtry
+  call prop_remove({'type': 'test'})
+  let &foldmethod = save_fdm
+  let &expandtab = save_et
+  let &shiftwidth = save_sw
+  let &softtabstop = save_sts
+  let &tabstop = save_ts
+endfunc
diff --git a/src/version.c b/src/version.c
index 6dd07bb..3c8feee 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    83,
+/**/
     82,
 /**/
     81,
