diff --git a/src/edit.c b/src/edit.c
index 0edd38b..c52583a 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -293,11 +293,14 @@
     conceal_check_cursor_line(cursor_line_was_concealed);
 #endif
 
-    /*
-     * Need to recompute the cursor position, it might move when the cursor is
-     * on a TAB or special character.
-     */
-    curs_columns(TRUE);
+    // Need to recompute the cursor position, it might move when the cursor
+    // is on a TAB or special character.
+    // ptr2cells() treats a TAB character as double-width.
+    if (ptr2cells(ml_get_cursor()) > 1)
+    {
+	curwin->w_valid &= ~VALID_VIRTCOL;
+	curs_columns(TRUE);
+    }
 
     /*
      * Enable langmap or IME, indicated by 'iminsert'.
diff --git a/src/testdir/dumps/Test_cursorcolumn_insert_on_tab_1.dump b/src/testdir/dumps/Test_cursorcolumn_insert_on_tab_1.dump
new file mode 100644
index 0000000..7a691e8
--- /dev/null
+++ b/src/testdir/dumps/Test_cursorcolumn_insert_on_tab_1.dump
@@ -0,0 +1,8 @@
+|1+0&#ffffff0|2|3|4|5|6|7|8+0&#e0e0e08|9+0&#ffffff0| @65
+|a| @5> |b| @65
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|2|,|2|-|8| @8|A|l@1| 
diff --git a/src/testdir/dumps/Test_cursorcolumn_insert_on_tab_2.dump b/src/testdir/dumps/Test_cursorcolumn_insert_on_tab_2.dump
new file mode 100644
index 0000000..29d6b19
--- /dev/null
+++ b/src/testdir/dumps/Test_cursorcolumn_insert_on_tab_2.dump
@@ -0,0 +1,8 @@
+|1+0&#ffffff0|2+0&#e0e0e08|3+0&#ffffff0|4|5|6|7|8|9| @65
+|a> @6|b| @65
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|-+2#0000000&@1| |I|N|S|E|R|T| |-@1| +0&&@44|2|,|2| @10|A|l@1| 
diff --git a/src/testdir/test_highlight.vim b/src/testdir/test_highlight.vim
index b07ba11..4b8cd86 100644
--- a/src/testdir/test_highlight.vim
+++ b/src/testdir/test_highlight.vim
@@ -592,6 +592,28 @@
   call delete('Xtest_cursorline_with_visualmode')
 endfunc
 
+func Test_cursorcolumn_insert_on_tab()
+  CheckScreendump
+
+  let lines =<< trim END
+    call setline(1, ['123456789', "a\tb"])
+    set cursorcolumn
+    call cursor(2, 2)
+  END
+  call writefile(lines, 'Xcuc_insert_on_tab')
+
+  let buf = RunVimInTerminal('-S Xcuc_insert_on_tab', #{rows: 8})
+  call TermWait(buf)
+  call VerifyScreenDump(buf, 'Test_cursorcolumn_insert_on_tab_1', {})
+
+  call term_sendkeys(buf, 'i')
+  call TermWait(buf)
+  call VerifyScreenDump(buf, 'Test_cursorcolumn_insert_on_tab_2', {})
+
+  call StopVimInTerminal(buf)
+  call delete('Xcuc_insert_on_tab')
+endfunc
+
 func Test_cursorcolumn_callback()
   CheckScreendump
   CheckFeature timers
diff --git a/src/version.c b/src/version.c
index c6f4446..e6398a0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4660,
+/**/
     4659,
 /**/
     4658,
