updated for version 7.0158
diff --git a/src/eval.c b/src/eval.c
index ef84aee..423faea 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -16538,7 +16538,8 @@
     {
 	/* Make sure the variable name is valid. */
 	for (p = varname; *p != NUL; ++p)
-	    if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p)))
+	    if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p))
+						       && *p != AUTOLOAD_CHAR)
 	    {
 		EMSG2(_(e_illvar), varname);
 		return;