patch 7.4.2110
Problem:    When there is an CmdUndefined autocmd then the error for a missing
            command is E464 instead of E492. (Manuel Ortega)
Solution:   Don't let the pointer be NULL.
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 28de56a..34c9955 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2343,7 +2343,7 @@
 	vim_free(p);
 	/* If the autocommands did something and didn't cause an error, try
 	 * finding the command again. */
-	p = (ret && !aborting()) ? find_command(&ea, NULL) : NULL;
+	p = (ret && !aborting()) ? find_command(&ea, NULL) : ea.cmd;
     }
 #endif
 
diff --git a/src/testdir/test_usercommands.vim b/src/testdir/test_usercommands.vim
index a3c5b95..e6c3196 100644
--- a/src/testdir/test_usercommands.vim
+++ b/src/testdir/test_usercommands.vim
@@ -46,3 +46,33 @@
   delcommand MyQCmd
   unlet g:mods
 endfunction
+
+func Test_Ambiguous()
+  command Doit let g:didit = 'yes'
+  command Dothat let g:didthat = 'also'
+  call assert_fails('Do', 'E464:')
+  Doit
+  call assert_equal('yes', g:didit)
+  Dothat
+  call assert_equal('also', g:didthat)
+  unlet g:didit
+  unlet g:didthat
+
+  delcommand Doit
+  Do
+  call assert_equal('also', g:didthat)
+  delcommand Dothat
+endfunc
+
+func Test_CmdUndefined()
+  call assert_fails('Doit', 'E492:')
+  au CmdUndefined Doit :command Doit let g:didit = 'yes'
+  Doit
+  call assert_equal('yes', g:didit)
+  delcommand Doit
+
+  call assert_fails('Dothat', 'E492:')
+  au CmdUndefined * let g:didnot = 'yes'
+  call assert_fails('Dothat', 'E492:')
+  call assert_equal('yes', g:didnot)
+endfunc
diff --git a/src/version.c b/src/version.c
index c24cf7a..8bb9d9d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -759,6 +759,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2110,
+/**/
     2109,
 /**/
     2108,