diff --git a/src/errors.h b/src/errors.h
index a49aa73..ffcbdef 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -73,7 +73,8 @@
 	INIT(= N_("E1021: const requires a value"));
 EXTERN char e_type_or_initialization_required[]
 	INIT(= N_("E1022: type or initialization required"));
-// E1023 unused
+EXTERN char e_using_number_as_bool_nr[]
+	INIT(= N_("E1023: Using a Number as a Bool: %d"));
 EXTERN char e_using_number_as_string[]
 	INIT(= N_("E1024: Using a Number as a String"));
 EXTERN char e_using_rcurly_outside_if_block_scope[]
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 4661108..35a8bf7 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1389,12 +1389,22 @@
   new
   setline(1, ['foo', 'bar'])
   let val = 0
+  # skip expr returns boolean
   assert_equal(2, search('bar', 'W', 0, 0, {-> val == 1}))
+  :1
+  assert_equal(0, search('bar', 'W', 0, 0, {-> val == 0}))
+  # skip expr returns number, only 0 and 1 are accepted
+  :1
+  assert_equal(2, search('bar', 'W', 0, 0, {-> 0}))
+  :1
+  assert_equal(0, search('bar', 'W', 0, 0, {-> 1}))
+  assert_fails("search('bar', '', 0, 0, {-> -1})", 'E1023:')
+  assert_fails("search('bar', '', 0, 0, {-> -1})", 'E1023:')
 enddef
 
 def Test_readdir()
-   eval expand('.')->readdir({e -> e[0] !=# '.'})
-   eval expand('.')->readdirex({e -> e.name[0] !=# '.'})
+   eval expand('sautest')->readdir({e -> e[0] !=# '.'})
+   eval expand('sautest')->readdirex({e -> e.name[0] !=# '.'})
 enddef
 
 def Test_setbufvar()
diff --git a/src/typval.c b/src/typval.c
index 2203bc6..d1732f2 100644
--- a/src/typval.c
+++ b/src/typval.c
@@ -177,6 +177,12 @@
     switch (varp->v_type)
     {
 	case VAR_NUMBER:
+	    if (want_bool && varp->vval.v_number != 0
+						   && varp->vval.v_number != 1)
+	    {
+		semsg(_(e_using_number_as_bool_nr), varp->vval.v_number);
+		break;
+	    }
 	    return varp->vval.v_number;
 	case VAR_FLOAT:
 #ifdef FEAT_FLOAT
@@ -261,13 +267,12 @@
 
 /*
  * Get the boolean value of "varp".  This is like tv_get_number_chk(),
- * but in Vim9 script accepts Number and Bool.
+ * but in Vim9 script accepts Number (0 and 1) and Bool/Special.
  */
     varnumber_T
 tv_get_bool(typval_T *varp)
 {
     return tv_get_bool_or_number_chk(varp, NULL, TRUE);
-
 }
 
 /*
diff --git a/src/version.c b/src/version.c
index 843fd43..575f343 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1506,
+/**/
     1505,
 /**/
     1504,
