Index: includes/session.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/session.inc,v
retrieving revision 1.28
diff -u -F^f -r1.28 session.inc
--- includes/session.inc	7 May 2006 00:08:36 -0000	1.28
+++ includes/session.inc	9 Aug 2006 20:07:08 -0000
@@ -17,17 +17,13 @@ function sess_close() {
 function sess_read($key) {
   global $user;
 
-  // retrieve data for a $user object
-  $result = db_query("SELECT sid FROM {sessions} WHERE sid = '%s'", $key);
-  if (!db_num_rows($result)) {
-    $result = db_query("SELECT u.* FROM {users} u WHERE u.uid = 0");
-  }
-  else {
-    $result = db_query("SELECT u.*, s.* FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.sid = '%s'", $key);
-  }
-
   // Build $user object:
-  $user = db_fetch_object($result);
+  if (!$user = db_fetch_object(db_query("SELECT u.*, s.* FROM {sessions} s LEFT JOIN {users} u ON s.uid = u.uid WHERE s.sid = '%s'", $key))) {
+    $user = new stdClass();
+    $user->uid = 0;
+    $user->hostname = $_SERVER['REMOTE_ADDR'];
+  }
+  // This is done to unserialize the data member of $user
   $user = drupal_unpack($user);
 
   // Add roles element to $user:
