diff --git a/src/strings.c b/src/strings.c
index e16b742..5aa7152 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -1065,11 +1065,13 @@
     varnumber_T	utf16idx = FALSE;
     if (argvars[2].v_type != VAR_UNKNOWN)
     {
-	utf16idx = tv_get_bool(&argvars[2]);
+	int error = FALSE;
+	utf16idx = tv_get_bool_chk(&argvars[2], &error);
+	if (error)
+	    return;
 	if (utf16idx < 0 || utf16idx > 1)
 	{
-	    if (utf16idx != -1)
-		semsg(_(e_using_number_as_bool_nr), utf16idx);
+	    semsg(_(e_using_number_as_bool_nr), utf16idx);
 	    return;
 	}
     }
@@ -1421,14 +1423,19 @@
 	return;
 
     if (argvars[1].v_type != VAR_UNKNOWN)
-	skipcc = tv_get_bool(&argvars[1]);
-    if (skipcc < 0 || skipcc > 1)
     {
-	if (skipcc != -1)
+	int error = FALSE;
+	skipcc = tv_get_bool_chk(&argvars[1], &error);
+	if (error)
+	    return;
+	if (skipcc < 0 || skipcc > 1)
+	{
 	    semsg(_(e_using_number_as_bool_nr), skipcc);
+	    return;
+	}
     }
-    else
-	strchar_common(argvars, rettv, skipcc);
+
+    strchar_common(argvars, rettv, skipcc);
 }
 
 /*
@@ -1533,11 +1540,12 @@
 	if (argvars[2].v_type != VAR_UNKNOWN
 					   && argvars[3].v_type != VAR_UNKNOWN)
 	{
-	    skipcc = tv_get_bool(&argvars[3]);
+	    skipcc = tv_get_bool_chk(&argvars[3], &error);
+	    if (error)
+		return;
 	    if (skipcc < 0 || skipcc > 1)
 	    {
-		if (skipcc != -1)
-		    semsg(_(e_using_number_as_bool_nr), skipcc);
+		semsg(_(e_using_number_as_bool_nr), skipcc);
 		return;
 	    }
 	}
diff --git a/src/testdir/test_expr.vim b/src/testdir/test_expr.vim
index b3a8c49..68cbeb5 100644
--- a/src/testdir/test_expr.vim
+++ b/src/testdir/test_expr.vim
@@ -161,7 +161,8 @@
   END
   call v9.CheckLegacyAndVim9Success(lines)
 
-  call assert_fails('echo strcharpart("", 0, 0, {})', ['E728:', 'E728:'])
+  call assert_fails('call strcharpart("", 0, 0, {})', ['E728:', 'E728:'])
+  call assert_fails('call strcharpart("", 0, 0, -1)', ['E1023:', 'E1023:'])
 endfunc
 
 func Test_getreg_empty_list()
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index f05ac15..4529a5e 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -1225,6 +1225,7 @@
   call assert_fails("call byteidx([], 0)", 'E730:')
   call assert_fails("call byteidx('abc', [])", 'E745:')
   call assert_fails("call byteidx('abc', 0, {})", ['E728:', 'E728:'])
+  call assert_fails("call byteidx('abc', 0, -1)", ['E1023:', 'E1023:'])
 endfunc
 
 " Test for byteidxcomp() using a character index
@@ -1265,6 +1266,7 @@
   call assert_fails("call byteidxcomp([], 0)", 'E730:')
   call assert_fails("call byteidxcomp('abc', [])", 'E745:')
   call assert_fails("call byteidxcomp('abc', 0, {})", ['E728:', 'E728:'])
+  call assert_fails("call byteidxcomp('abc', 0, -1)", ['E1023:', 'E1023:'])
 endfunc
 
 " Test for byteidx() using a UTF-16 index
@@ -1625,7 +1627,6 @@
   " error cases
   call assert_equal(-1, utf16idx(test_null_string(), 0, v:true, v:true))
   call assert_fails('let l = utf16idx("ab", 0, v:false, [])', 'E1212:')
-  call assert_fails('echo strchars("", {})', ['E728:', 'E728:'])
 endfunc
 
 " Test for strutf16len()
diff --git a/src/testdir/test_utf8.vim b/src/testdir/test_utf8.vim
index 16bf60d..610566f 100644
--- a/src/testdir/test_utf8.vim
+++ b/src/testdir/test_utf8.vim
@@ -29,8 +29,10 @@
     call assert_equal(exp[i], strcharlen(inp[i]))
   endfor
 
-  call assert_fails("let v=strchars('abc', [])", 'E745:')
-  call assert_fails("let v=strchars('abc', 2)", 'E1023:')
+  call assert_fails("call strchars('abc', 2)", ['E1023:', 'E1023:'])
+  call assert_fails("call strchars('abc', -1)", ['E1023:', 'E1023:'])
+  call assert_fails("call strchars('abc', {})", ['E728:', 'E728:'])
+  call assert_fails("call strchars('abc', [])", ['E745:', 'E745:'])
 endfunc
 
 " Test for customlist completion
diff --git a/src/version.c b/src/version.c
index 1197ada..4964179 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1524,
+/**/
     1523,
 /**/
     1522,
