diff --git a/include/class.client.php b/include/class.client.php
index e1057afa651472052589c0629fed129475d0e45e..8786c0e19cdb9719a86a556b3ce26795ac5ce62f 100644
--- a/include/class.client.php
+++ b/include/class.client.php
@@ -30,12 +30,12 @@ class Client {
     var $ht;
 
 
-    function Client($email,$id) {
+    function Client($id, $email=null) {
         $this->id =0;
         $this->load($id,$email);
     }
 
-    function load($id=0, $email='') {
+    function load($id=0, $email=null) {
 
         if(!$id && !($id=$this->getId()))
             return false;
@@ -115,8 +115,23 @@ class Client {
     }
 
     /* ------------- Static ---------------*/
-    function lookup($id, $email) {
+    function getLastTicketIdByEmail($email) {
+        $sql='SELECT ticketID FROM '.TICKET_TABLE
+            .' WHERE email='.db_input($email)
+            .' ORDER BY created '
+            .' LIMIT 1';
+        if(($res=db_query($sql)) && db_num_rows($res))
+            list($tid) = db_fetch_row($res);
+
+        return $tid;
+    }
+
+    function lookup($id, $email=null) {
         return ($id && is_numeric($id) && ($c=new Client($id,$email)) && $c->getId()==$id)?$c:null;
     }
+
+    function lookupByEmail($email) {
+        return (($id=self::getLastTicketIdByEmail($email)))?self::lookup($id, $email):null;
+    }
 }
 ?>
diff --git a/include/class.usersession.php b/include/class.usersession.php
index 9a8283e3741a9b97f59a06649293831108634f93..c12f3a0d8aaf70988cbe2c022c8346b3eccdeccd 100644
--- a/include/class.usersession.php
+++ b/include/class.usersession.php
@@ -107,8 +107,8 @@ class ClientSession extends Client {
     
     var $session;
 
-    function ClientSession($email,$id){
-        parent::Client($email,$id);
+    function ClientSession($email, $id){
+        parent::Client($id, $email);
         $this->session= new UserSession($email);
     }