diff --git a/sites/default/modules/memcache/memcache-session.inc b/sites/default/modules/memcache/memcache-session.inc
index 01a4e8d..4daa5c3 100644
--- a/sites/default/modules/memcache/memcache-session.inc
+++ b/sites/default/modules/memcache/memcache-session.inc
@@ -81,12 +81,13 @@ function sess_write($key, $value) {
 
   // If this is an authenticated user, or there is something to save in the
   // session, write it to memcache. Cases 1b, 2a, and 2b are covered here.
-  if ($user->uid || !empty($user->$value)) {
+  if ($user->uid || !empty($value)) {
     dmemcache_set($key, $session, ini_get('session.gc_maxlifetime'), 'session');
-    dmemcache_set($user->uid, $user, ini_get('session.gc_maxlifetime'), 'users');
     if ($user->uid && $session->timestamp - $user->access > variable_get('session_write_interval', 360)) {
       db_query('UPDATE {users} SET access = %d WHERE uid = %d', $session->timestamp, $user->uid);
+      $user->access = $session->timestamp;
     }
+    dmemcache_set($user->uid, $user, ini_get('session.gc_maxlifetime'), 'users');
   }
 
   return TRUE;
