diff --git a/modules/node/views_handler_filter_node_access.inc b/modules/node/views_handler_filter_node_access.inc
index a29b13f..6d9ff25 100644
--- a/modules/node/views_handler_filter_node_access.inc
+++ b/modules/node/views_handler_filter_node_access.inc
@@ -23,13 +23,18 @@ class views_handler_filter_node_access extends views_handler_filter {
   function query() {
     if (!user_access('administer nodes') && module_implements('node_grants')) {
       $table = $this->ensure_my_table();
-      $grants = db_or();
-      foreach (node_access_grants('view') as $realm => $gids) {
-        foreach ($gids as $gid) {
-          $grants->condition(db_and()
-            ->condition($table . '.gid', $gid)
-            ->condition($table . '.realm', $realm)
-          );
+      if (function_exists('node_add_node_grants_to_query')) {
+        $grants = node_add_node_grants_to_query(node_access_grants('view'));
+      }
+      else {
+        $grants = db_or();
+        foreach (node_access_grants('view') as $realm => $gids) {
+          foreach ($gids as $gid) {
+            $grants->condition(db_and()
+              ->condition($table . '.gid', $gid)
+              ->condition($table . '.realm', $realm)
+            );
+          }
         }
       }
 
