updated for version 7.0004
diff --git a/src/eval.c b/src/eval.c
index 5e40515..7ef1398 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -741,6 +741,14 @@
 
     for (i = 0; i < argc; i++)
     {
+	/* Pass a NULL or empty argument as an empty string */
+	if (argv[i] == NULL || *argv[i] == NUL)
+	{
+	    argvars[i].var_type = VAR_STRING;
+	    argvars[i].var_val.var_string = "";
+	    continue;
+	}
+
 	/* Recognize a number argument, the others must be strings. */
 	vim_str2nr(argv[i], NULL, &len, TRUE, TRUE, &n, NULL);
 	if (len != 0 && len == (int)STRLEN(argv[i]))