diff --git a/src/eval.c b/src/eval.c
index 8cc8d05..1e82246 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -532,6 +532,7 @@
 static void f_did_filetype(typval_T *argvars, typval_T *rettv);
 static void f_diff_filler(typval_T *argvars, typval_T *rettv);
 static void f_diff_hlID(typval_T *argvars, typval_T *rettv);
+static void f_disable_char_avail_for_testing(typval_T *argvars, typval_T *rettv);
 static void f_empty(typval_T *argvars, typval_T *rettv);
 static void f_escape(typval_T *argvars, typval_T *rettv);
 static void f_eval(typval_T *argvars, typval_T *rettv);
@@ -8111,6 +8112,7 @@
     {"did_filetype",	0, 0, f_did_filetype},
     {"diff_filler",	1, 1, f_diff_filler},
     {"diff_hlID",	2, 2, f_diff_hlID},
+    {"disable_char_avail_for_testing", 1, 1, f_disable_char_avail_for_testing},
     {"empty",		1, 1, f_empty},
     {"escape",		2, 2, f_escape},
     {"eval",		1, 1, f_eval},
@@ -10606,6 +10608,15 @@
 }
 
 /*
+ * "disable_char_avail_for_testing({expr})" function
+ */
+    static void
+f_disable_char_avail_for_testing(typval_T *argvars, typval_T *rettv UNUSED)
+{
+    disable_char_avail_for_testing = get_tv_number(&argvars[0]);
+}
+
+/*
  * "empty({expr})" function
  */
     static void
@@ -12449,8 +12460,11 @@
 #endif
 							      (varnumber_T)0);
 	if (getcurpos)
+	{
+	    update_curswant();
 	    list_append_number(l, curwin->w_curswant == MAXCOL ?
 		    (varnumber_T)MAXCOL : (varnumber_T)curwin->w_curswant + 1);
+	}
     }
     else
 	rettv->vval.v_number = FALSE;
diff --git a/src/getchar.c b/src/getchar.c
index 2c57090..0347514 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -1888,6 +1888,12 @@
 {
     int	    retval;
 
+#ifdef FEAT_EVAL
+    /* When disable_char_avail_for_testing(1) was called pretend there is no
+     * typeahead. */
+    if (disable_char_avail_for_testing)
+	return FALSE;
+#endif
     ++no_mapping;
     retval = vpeekc();
     --no_mapping;
diff --git a/src/globals.h b/src/globals.h
index 4c1b41f..b43f1a2 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1621,6 +1621,8 @@
 EXTERN int  alloc_fail_countdown INIT(= -1);
 /* set by alloc_fail(), number of times alloc() returns NULL */
 EXTERN int  alloc_fail_repeat INIT(= 0);
+
+EXTERN int  disable_char_avail_for_testing INIT(= 0);
 #endif
 
 /*
diff --git a/src/testdir/README.txt b/src/testdir/README.txt
index 7cbc771..052ccf5 100644
--- a/src/testdir/README.txt
+++ b/src/testdir/README.txt
@@ -25,6 +25,9 @@
   to check memory allocation failures are handled gracefully.  You need to
   change the source code to add an ID to the allocation.  Update LAST_ID_USED
   above alloc_id() to the highest ID used.
+- Use disable_char_avail_for_testing(1) if char_avail() must return FALSE for
+  a while.  E.g. to trigger the CursorMovedI autocommand event.
+  See test_cursor_func.vim for an example
 
 
 TO ADD AN OLD STYLE TEST:
diff --git a/src/testdir/test_cursor_func.vim b/src/testdir/test_cursor_func.vim
index 684391e..d3236e6 100644
--- a/src/testdir/test_cursor_func.vim
+++ b/src/testdir/test_cursor_func.vim
@@ -20,16 +20,35 @@
   call assert_equal([4, 3, 0, 3], getcurpos()[1:])
 
   call cursor(2, 2)
-  call assert_equal([2, 2, 0, 3], getcurpos()[1:])
+  call assert_equal([2, 2, 0, 2], getcurpos()[1:])
   " line number zero keeps the line number
   call cursor(0, 1)
-  call assert_equal([2, 1, 0, 3], getcurpos()[1:])
+  call assert_equal([2, 1, 0, 1], getcurpos()[1:])
   " col number zero keeps the column
   call cursor(3, 0)
-  call assert_equal([3, 1, 0, 3], getcurpos()[1:])
+  call assert_equal([3, 1, 0, 1], getcurpos()[1:])
   " below last line goes to last line
   call cursor(9, 1)
-  call assert_equal([4, 1, 0, 3], getcurpos()[1:])
+  call assert_equal([4, 1, 0, 1], getcurpos()[1:])
 
   quit!
 endfunc
+
+" Very short version of what matchparen does.
+function s:Highlight_Matching_Pair()
+  let save_cursor = getcurpos()
+  call setpos('.', save_cursor)
+endfunc
+
+func Test_curswant_with_autocommand()
+  new
+  call setline(1, ['func()', '{', '}', '----'])
+  autocmd! CursorMovedI * call s:Highlight_Matching_Pair()
+  call disable_char_avail_for_testing(1)
+  exe "normal! 3Ga\<Down>X\<Esc>"
+  call disable_char_avail_for_testing(0)
+  call assert_equal('-X---', getline(4))
+  autocmd! CursorMovedI *
+  quit!
+endfunc
+
diff --git a/src/version.c b/src/version.c
index 9a77db0..e19d205 100644
--- a/src/version.c
+++ b/src/version.c
@@ -748,6 +748,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1300,
+/**/
     1299,
 /**/
     1298,
