diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index 1aa6e8d26987960a54c8c32d4bbb73f16a1320e2..56a8d8b3b60faa105928482f54f946cda31435e6 100644
--- a/includes/bootstrap.inc
+++ b/includes/bootstrap.inc
@@ -615,12 +615,13 @@ function drupal_is_denied($type, $mask) {
  *
  * @return Object - the user object.
  */
-function drupal_anonymous_user() {
+function drupal_anonymous_user($session = '') {
   $user = new stdClass();
   $user->uid = 0;
   $user->hostname = $_SERVER['REMOTE_ADDR'];
   $user->roles = array();
   $user->roles[DRUPAL_ANONYMOUS_RID] = 'anonymous user';
+  $user->session = $session;
   return $user;
 }
 
diff --git a/includes/session.inc b/includes/session.inc
index 42f5e826b183c6d97f0d25b3042cc2df41e7e041..78ec82051b030fad4429711c40951cc68373d1b5 100644
--- a/includes/session.inc
+++ b/includes/session.inc
@@ -41,7 +41,7 @@ function sess_read($key) {
   }
   // We didn't find the client's record (session has expired), or they are an anonymous user.
   else  {
-    $user = drupal_anonymous_user();
+    $user = drupal_anonymous_user($user->session);
   }
 
   return $user->session;