diff --git a/modules/node/node.module b/modules/node/node.module
index 3e27431..27a77fb 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -2188,9 +2188,9 @@ function node_access_view_all_nodes() {
  */
 function node_db_rewrite_sql($query, $primary_table, $primary_field) {
   if ($primary_field == 'nid' && !node_access_view_all_nodes()) {
-    $return['join'] = _node_access_join_sql($primary_table);
-    $return['where'] = _node_access_where_sql();
-    $return['distinct'] = 1;
+    $where = _node_access_where_sql();
+    if ($where) {
+      $return['where'] = 'EXISTS (SELECT na.nid FROM {node_access} na WHERE ' . $primary_table . '.nid = na.nid AND (' . $wsql . '))';
     return $return;
   }
 }
