diff --git a/permissions_by_term.module b/permissions_by_term.module
index 32400f7..462ec5d 100644
--- a/permissions_by_term.module
+++ b/permissions_by_term.module
@@ -309,7 +309,7 @@ function permissions_by_term_node_access(NodeInterface $node, $op, AccountInterf
   /* @var \Drupal\permissions_by_term\Service\AccessCheck $accessCheck */
   $accessCheck = \Drupal::service('permissions_by_term.access_check');
 
-  $accessCheck->dispatchDeniedEventOnRestricedAccess($node->id(), $node->language()->getId());
+  return $accessCheck->dispatchDeniedEventOnRestricedAccess($node->id(), $node->language()->getId());
 }
 
 /**
diff --git a/src/Service/AccessCheck.php b/src/Service/AccessCheck.php
index 47a006d..bac9735 100644
--- a/src/Service/AccessCheck.php
+++ b/src/Service/AccessCheck.php
@@ -200,16 +200,18 @@ class AccessCheck {
     return $result;
   }
 
-  public function dispatchDeniedEventOnRestricedAccess($nodeId, string $langcode): void {
+  public function dispatchDeniedEventOnRestricedAccess($nodeId, string $langcode) {
     if (!$this->canUserAccessByNodeId($nodeId, false, $langcode)) {
-      $this->dispatchDeniedEvent($nodeId);
+      return $this->dispatchDeniedEvent($nodeId);
     }
+    return AccessResult::neutral();
   }
 
-  private function dispatchDeniedEvent($nodeId): void
+  private function dispatchDeniedEvent($nodeId)
   {
     $accessDeniedEvent = new PermissionsByTermDeniedEvent($nodeId);
     $this->eventDispatcher->dispatch(PermissionsByTermDeniedEvent::NAME, $accessDeniedEvent);
+    return AccessResult::forbidden();
   }
 
 }
