diff --git a/includes/callback_node_access.inc b/includes/callback_node_access.inc
index fec6a28..6ce4d7c 100644
--- a/includes/callback_node_access.inc
+++ b/includes/callback_node_access.inc
@@ -91,19 +91,21 @@ class SearchApiAlterNodeAccess extends SearchApiAbstractAlterCallback {
   }
 
   /**
-   * If the data alteration is being enabled, sets "Published" to "indexed".
+   * Submit callback for the configuration form.
+   *
+   * If the data alteration is being enabled, set "Published" and "Author" to
+   * "indexed", because both are needed for the node access filter.
    */
   public function configurationFormSubmit(array $form, array &$values, array &$form_state) {
-    parent::configurationFormSubmit($form, $values, $form_state);
-
     $old_status = !empty($form_state['index']->options['data_alter_callbacks']['search_api_alter_node_access']['status']);
     $new_status = !empty($form_state['values']['callbacks']['search_api_alter_node_access']['status']);
 
     if (!$old_status && $new_status) {
       $form_state['index']->options['fields']['status']['indexed'] = TRUE;
+      $form_state['index']->options['fields']['author']['indexed'] = TRUE;
     }
 
-    return $values;
+    return parent::configurationFormSubmit($form, $values, $form_state);
   }
 
 }
diff --git a/search_api.module b/search_api.module
index 69d551d..341bcb2 100644
--- a/search_api.module
+++ b/search_api.module
@@ -1256,7 +1256,7 @@ function search_api_search_api_query_alter(SearchApiQueryInterface $query) {
   // Only add node access if the "search_api_access_node" field is indexed for
   // the index, and unless disabled explicitly by the query.
   $fields = $index->options['fields'];
-  if (!empty($fields['search_api_access_node']['indexed']) && !empty($fields['status']['indexed']) && !$query->getOption('search_api_bypass_access')) {
+  if (!empty($fields['search_api_access_node']['indexed']) && !empty($fields['status']['indexed']) && !empty($fields['author']['indexed']) && !$query->getOption('search_api_bypass_access')) {
     $account = $query->getOption('search_api_access_account', $GLOBALS['user']);
     if (is_numeric($account)) {
       $account = user_load($account);
@@ -1298,7 +1298,7 @@ function _search_api_query_add_node_access($account, SearchApiQueryInterface $qu
     if (user_access('view own unpublished content')) {
       $filter = $query->createFilter('OR');
       $filter->condition('status', NODE_PUBLISHED);
-      $filter->condition('uid', $account->uid);
+      $filter->condition('author', $account->uid);
       $query->filter($filter);
     }
     else {
