diff --git a/includes/session.inc b/includes/session.inc
index 99d714a0e9bebb238163b4f92455eb8596d77f53..8a1b9d3c106c171987182cd0f64a46318ce0cdd2 100644
--- a/includes/session.inc
+++ b/includes/session.inc
@@ -132,7 +132,7 @@ function _sess_write($key, $value) {
   // the session table. This reduces memory and server load, and gives more useful
   // statistics. We can't eliminate anonymous session table rows without breaking
   // the "Who's Online" block.
-  if (!drupal_save_session() || (empty($_COOKIE[session_name()]) && empty($value))) {
+  if (!drupal_save_session() || ($user->uid == 0 && empty($_COOKIE[session_name()]) && empty($value))) {
     return TRUE;
   }