diff --git a/includes/callback_node_access.inc b/includes/callback_node_access.inc
index ce671d7..dd3f2b8 100644
--- a/includes/callback_node_access.inc
+++ b/includes/callback_node_access.inc
@@ -66,8 +66,8 @@ class SearchApiAlterNodeAccess extends SearchApiAbstractAlterCallback {
     }
 
     foreach ($items as $nid => &$item) {
-      // Check whether all users have access to the node.
-      if (!node_access('view', $item, $account)) {
+      // Check whether all users have access to the node or view_unpublished module enabled.
+      if (!node_access('view', $item, $account) || module_exists('view_unpublished')) {
         // Get node access grants.
         $result = db_query('SELECT * FROM {node_access} WHERE (nid = 0 OR nid = :nid) AND grant_view = 1', array(':nid' => $item->nid));
 
diff --git a/search_api.module b/search_api.module
index a18c467..04b7767 100644
--- a/search_api.module
+++ b/search_api.module
@@ -1378,15 +1378,18 @@ function _search_api_query_add_node_access($account, SearchApiQueryInterface $qu
 
   // Only filter for user which don't have full node access.
   if (!user_access('bypass node access', $account)) {
-    // Filter by node "published" status.
-    if (user_access('view own unpublished content')) {
-      $filter = $query->createFilter('OR');
-      $filter->condition('status', NODE_PUBLISHED);
-      $filter->condition('author', $account->uid);
-      $query->filter($filter);
-    }
-    else {
-      $query->condition('status', NODE_PUBLISHED);
+    // Do not filter by node "published" status if module view_unpublished is enabled.
+    if (!module_exists('view_unpublished')) {
+      // Filter by node "published" status.
+      if (user_access('view own unpublished content')) {
+        $filter = $query->createFilter('OR');
+        $filter->condition('status', NODE_PUBLISHED);
+        $filter->condition('author', $account->uid);
+        $query->filter($filter);
+      }
+      else {
+        $query->condition('status', NODE_PUBLISHED);
+      }
     }
     // Filter by node access grants.
     $filter = $query->createFilter('OR');
