Index: apachesolr.d6.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/apachesolr/Attic/apachesolr.d6.inc,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 apachesolr.d6.inc
--- apachesolr.d6.inc	22 Sep 2009 15:30:33 -0000	1.1.2.1
+++ apachesolr.d6.inc	25 Oct 2009 18:25:23 -0000
@@ -77,10 +77,3 @@ function db_type_placeholder($type) {
   // will cause the query to fail.
   return 'unsupported type '. $type .'for db_type_placeholder';
 }
-
-function menu_get_object($type = 'node', $position = 1, $path = NULL) {
-  $router_item = menu_get_item($path);
-  if (isset($router_item['load_functions'][$position]) && !empty($router_item['map'][$position]) && $router_item['load_functions'][$position] == $type .'_load') {
-    return $router_item['map'][$position];
-  }
-}
Index: contrib/apachesolr_nodeaccess/apachesolr_nodeaccess.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/apachesolr/contrib/apachesolr_nodeaccess/apachesolr_nodeaccess.module,v
retrieving revision 1.1.2.11.4.1
diff -u -p -r1.1.2.11.4.1 apachesolr_nodeaccess.module
--- contrib/apachesolr_nodeaccess/apachesolr_nodeaccess.module	22 Sep 2009 15:26:16 -0000	1.1.2.11.4.1
+++ contrib/apachesolr_nodeaccess/apachesolr_nodeaccess.module	25 Oct 2009 18:25:24 -0000
@@ -5,14 +5,18 @@
  * Implementation of apachesolr_update_index
  */
 function apachesolr_nodeaccess_apachesolr_update_index(&$document, $node) {
-  static $account;
-
-  if (!isset($account)) {
-    // Load the anonymous user.
-    $account = drupal_anonymous_user();
+  global $user;
+  
+  // We have to run as anonymous while node_access() doesn't take the $user as
+  // argument but we want to check the access as anonymous. We are using
+  // http://drupal.org/node/218104 as trick to safe switch to anonymous.
+  if ($user->uid) {
+    $original_user = $user;
+    session_save_session(FALSE);
+    $user = drupal_anonymous_user();
   }
-
-  if (!node_access('view', $node, $account)) {
+  
+  if (!node_access('view', $node)) {
     // Get node access grants.
     $result = db_query('SELECT * FROM {node_access} WHERE (nid = 0 OR nid = %d) AND grant_view = 1', $node->nid);
     while ($grant = db_fetch_object($result)) {
@@ -25,6 +29,12 @@ function apachesolr_nodeaccess_apachesol
     // node access or the node is viewable by anonymous users.
     $document->setMultiValue('nodeaccess_all', 0);
   }
+
+  // Switch back the original user
+  if ($original_user->uid) {
+    $user = $original_user;
+    session_save_session(TRUE);
+  }
 }
 
 /**
