diff --git a/include/class.auth.php b/include/class.auth.php
index 81693040092784c1b4964d16ab0b58f5adf4c4de..ebf76b2a85edf0ceb787a4473741cb2a8dcde7ac 100644
--- a/include/class.auth.php
+++ b/include/class.auth.php
@@ -523,7 +523,7 @@ abstract class UserAuthenticationBackend  extends AuthenticationBackend {
     }
 
     protected function getAuthKey($user) {
-        return  $user->getUsername();
+        return  $user->getId();
     }
 
     static function getUser() {
@@ -546,12 +546,13 @@ abstract class UserAuthenticationBackend  extends AuthenticationBackend {
         return $user;
     }
 
-    protected function validate($username) {
-        if (!($acct = ClientAccount::lookupByUsername($username)))
-            return;
+    protected function validate($userid) {
+        if (!($user = User::lookup($userid)))
+            return false;
+        elseif (!$user->getAccount())
+            return false;
 
-        if (($client = new ClientSession(new EndUser($acct->getUser()))) && $client->getId())
-            return $client;
+        return new ClientSession(new EndUser($user));
     }
 }
 
diff --git a/include/class.usersession.php b/include/class.usersession.php
index 31c4ce058d50939e10dabda80fe736ab3095c83f..9e7fd277baf58d59b39ade1255bd29a1308493a4 100644
--- a/include/class.usersession.php
+++ b/include/class.usersession.php
@@ -120,7 +120,7 @@ class ClientSession extends EndUser {
         parent::__construct($user);
         $this->token = &$_SESSION[':token']['client'];
         // XXX: Change the key to user-id
-        $this->session= new UserSession($user->getUserName());
+        $this->session= new UserSession($user->getId());
     }
 
     function isValid(){