diff --git a/src/sign.c b/src/sign.c
index 6d62afa..85c8d14 100644
--- a/src/sign.c
+++ b/src/sign.c
@@ -2235,6 +2235,11 @@
 {
     char_u	*name;
 
+    if (in_vim9script()
+	    && (check_for_string_or_list_arg(argvars, 0) == FAIL
+		|| check_for_opt_dict_arg(argvars, 1) == FAIL))
+	return;
+
     if (argvars[0].v_type == VAR_LIST && argvars[1].v_type == VAR_UNKNOWN)
     {
 	// Define multiple signs
@@ -2363,6 +2368,12 @@
 
     rettv->vval.v_number = -1;
 
+    if (in_vim9script()
+	    && (check_for_number_arg(argvars, 0) == FAIL
+		|| check_for_string_arg(argvars, 1) == FAIL
+		|| check_for_buffer_arg(argvars, 2) == FAIL))
+	return;
+
     // Sign identifier
     sign_id = (int)tv_get_number_chk(&argvars[0], &notanum);
     if (notanum)
@@ -2530,6 +2541,14 @@
 
     rettv->vval.v_number = -1;
 
+    if (in_vim9script()
+	    && (check_for_number_arg(argvars, 0) == FAIL
+		|| check_for_string_arg(argvars, 1) == FAIL
+		|| check_for_string_arg(argvars, 2) == FAIL
+		|| check_for_buffer_arg(argvars, 3) == FAIL
+		|| check_for_opt_dict_arg(argvars, 4) == FAIL))
+	return;
+
     if (argvars[4].v_type != VAR_UNKNOWN
 	    && (argvars[4].v_type != VAR_DICT
 		|| ((dict = argvars[4].vval.v_dict) == NULL)))
