diff --git a/chain_menu_access.module b/chain_menu_access.module
index 9d348ad..a7a739b 100644
--- a/chain_menu_access.module
+++ b/chain_menu_access.module
@@ -56,7 +56,7 @@ function _chain_menu_access_callback() {
   // Recover the parameters from the array, plus the $new_access_arguments.
   list($old_access_callback, $new_access_callback, $count, $or, $pass_index) = array_shift($args);
   $new_access_arguments = array_splice($args, 0, (int) $count, array());
-  if ($pass_index !== FALSE || $old_access_callback == 'user_access' || is_numeric($old_access_callback)) {
+  if ($pass_index !== FALSE || $old_access_callback == 'user_access' || is_numeric($old_access_callback) || is_bool($old_access_callback)) {
     // Call the $old_access_callback first either if we need to pass its result
     // to the $new_access_callback or if it's a user_access() call or constant
     // number (which would be very quick to evaluate).
@@ -86,7 +86,7 @@ function _chain_menu_access_callback() {
  * Internal helper function to call one callback.
  */
 function _chain_menu_access_callback_call($access_callback, $access_arguments) {
-  if (is_numeric($access_callback)) {
+  if (is_numeric($access_callback) || is_bool($access_callback)) {
     // It's a number (see hook_menu()).
     return (bool) $access_callback;
   }
