diff --git a/src/errors.h b/src/errors.h
index e5b8cd2..e39e404 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -852,3 +852,5 @@
 	INIT(= N_("E1254: Cannot use script variable in for loop"));
 EXTERN char e_cmd_mapping_must_end_with_cr[]
 	INIT(= N_("E1255: <Cmd> mapping must end with <CR>"));
+EXTERN char e_string_or_function_required_for_argument_nr[]
+	INIT(= N_("E1256: String or function required for argument %d"));
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 8f52053..e4fa35b 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -2858,7 +2858,8 @@
     dict_T	*selfdict = NULL;
 
     if (in_vim9script()
-	    && (check_for_list_arg(argvars, 1) == FAIL
+	    && (check_for_string_or_func_arg(argvars, 0) == FAIL
+		|| check_for_list_arg(argvars, 1) == FAIL
 		|| check_for_opt_dict_arg(argvars, 2) == FAIL))
 	return;
 
diff --git a/src/proto/typval.pro b/src/proto/typval.pro
index f5804a3..f04bf15 100644
--- a/src/proto/typval.pro
+++ b/src/proto/typval.pro
@@ -40,6 +40,7 @@
 int check_for_string_or_number_or_list_arg(typval_T *args, int idx);
 int check_for_opt_string_or_number_or_list_arg(typval_T *args, int idx);
 int check_for_string_or_list_or_dict_arg(typval_T *args, int idx);
+int check_for_string_or_func_arg(typval_T *args, int idx);
 int check_for_list_or_blob_arg(typval_T *args, int idx);
 int check_for_list_or_dict_arg(typval_T *args, int idx);
 int check_for_list_or_dict_or_blob_arg(typval_T *args, int idx);
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim
index 298a3be..1bdb12b 100644
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -402,6 +402,9 @@
   var l = [3, 2, 1]
   call('reverse', [l])
   l->assert_equal([1, 2, 3])
+
+  CheckDefExecAndScriptFailure(['call(123, [2])'], 'E1256: String or function required for argument 1')
+  CheckDefExecAndScriptFailure(['call(true, [2])'], 'E1256: String or function required for argument 1')
   CheckDefAndScriptFailure(['call("reverse", 2)'], ['E1013: Argument 2: type mismatch, expected list<any> but got number', 'E1211: List required for argument 2'])
   CheckDefAndScriptFailure(['call("reverse", [2], [1])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3'])
 enddef
diff --git a/src/typval.c b/src/typval.c
index 358e04e..2f773b6 100644
--- a/src/typval.c
+++ b/src/typval.c
@@ -757,6 +757,23 @@
 }
 
 /*
+ * Give an error and return FAIL unless "args[idx]" is a string
+ * or a function reference.
+ */
+    int
+check_for_string_or_func_arg(typval_T *args, int idx)
+{
+    if (args[idx].v_type != VAR_PARTIAL
+	    && args[idx].v_type != VAR_FUNC
+	    && args[idx].v_type != VAR_STRING)
+    {
+	semsg(_(e_string_or_function_required_for_argument_nr), idx + 1);
+	return FAIL;
+    }
+    return OK;
+}
+
+/*
  * Give an error and return FAIL unless "args[idx]" is a list or a blob.
  */
     int
diff --git a/src/version.c b/src/version.c
index 423ec6e..c4e4ad0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -750,6 +750,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3894,
+/**/
     3893,
 /**/
     3892,
