diff --git a/htdocs/install/upgrade.php b/htdocs/install/upgrade.php
index d48c91c6c8806a9041923f4e7b7ac7a7b6f15405..98a97dc35063b8f8e12c6fde8232f4bc988e4bfd 100644
--- a/htdocs/install/upgrade.php
+++ b/htdocs/install/upgrade.php
@@ -227,9 +227,9 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action')))
         print '<div class="error">'.$langs->trans("Error").'</div>';
     }
 
-    /*
-     * Remove deprecated indexes and constraints for Mysql
-     */
+	/*
+	 * Remove deprecated indexes and constraints for Mysql
+	 */
     if ($ok && preg_match('/mysql/',$db->type))
     {
         $versioncommande=explode('.','4.0');
@@ -238,43 +238,49 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action')))
         {
             // Suppression vieilles contraintes sans noms et en doubles
             // Les contraintes indesirables ont un nom qui commence par 0_ ou se termine par ibfk_999
-            $listtables=array(  'llx_adherent_options',
-								'llx_bank_class',
-								'llx_c_ecotaxe',
-								'llx_c_methode_commande_fournisseur',   // table renamed
-    		                    'llx_c_input_method');
-
+            $listtables=array(
+            					MAIN_DB_PREFIX.'adherent_options',
+            					MAIN_DB_PREFIX.'bank_class',
+            					MAIN_DB_PREFIX.'c_ecotaxe',
+            					MAIN_DB_PREFIX.'c_methode_commande_fournisseur',   // table renamed
+    		                    MAIN_DB_PREFIX.'c_input_method'
+            );
+            
             $listtables = $db->DDLListTables($conf->db->name,'');
             foreach ($listtables as $val)
             {
-                //print "x".$val."<br>";
-                $sql = "SHOW CREATE TABLE ".$val;
-                $resql = $db->query($sql);
-                if ($resql)
-                {
-                    $values=$db->fetch_array($resql);
-                    $i=0;
-                    $createsql=$values[1];
-                    while (preg_match('/CONSTRAINT `(0_[0-9a-zA-Z]+|[_0-9a-zA-Z]+_ibfk_[0-9]+)`/i',$createsql,$reg) && $i < 100)
-                    {
-                        $sqldrop="ALTER TABLE ".$val." DROP FOREIGN KEY ".$reg[1];
-                        $resqldrop = $db->query($sqldrop);
-                        if ($resqldrop)
-                        {
-                            print '<tr><td colspan="2">'.$sqldrop.";</td></tr>\n";
-                        }
-                        $createsql=preg_replace('/CONSTRAINT `'.$reg[1].'`/i','XXX',$createsql);
-                        $i++;
-                    }
-                    $db->free($resql);
-                }
-                else
-                {
-                    if ($db->lasterrno() != 'DB_ERROR_NOSUCHTABLE')
-                    {
-                        print '<tr><td colspan="2"><font  class="error">'.$sql.' : '.$db->lasterror()."</font></td></tr>\n";
-                    }
-                }
+            	// Database prefix filter
+            	if (preg_match('/^'.MAIN_DB_PREFIX.'/', $val))
+            	{
+            		//print "x".$val."<br>";
+            		$sql = "SHOW CREATE TABLE ".$val;
+            		$resql = $db->query($sql);
+            		if ($resql)
+            		{
+            			$values=$db->fetch_array($resql);
+            			$i=0;
+            			$createsql=$values[1];
+            			while (preg_match('/CONSTRAINT `(0_[0-9a-zA-Z]+|[_0-9a-zA-Z]+_ibfk_[0-9]+)`/i',$createsql,$reg) && $i < 100)
+            			{
+            				$sqldrop="ALTER TABLE ".$val." DROP FOREIGN KEY ".$reg[1];
+            				$resqldrop = $db->query($sqldrop);
+            				if ($resqldrop)
+            				{
+            					print '<tr><td colspan="2">'.$sqldrop.";</td></tr>\n";
+            				}
+            				$createsql=preg_replace('/CONSTRAINT `'.$reg[1].'`/i','XXX',$createsql);
+            				$i++;
+            			}
+            			$db->free($resql);
+            		}
+            		else
+            		{
+            			if ($db->lasterrno() != 'DB_ERROR_NOSUCHTABLE')
+            			{
+            				print '<tr><td colspan="2"><font  class="error">'.$sql.' : '.$db->lasterror()."</font></td></tr>\n";
+            			}
+            		}
+            	}
             }
         }
     }
diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php
index 4d671ecb393944cc631f17ee977f175b9b61137c..c850b7da1fba10e58d44e478dd7c88cb65b89656 100644
--- a/htdocs/user/class/user.class.php
+++ b/htdocs/user/class/user.class.php
@@ -4,7 +4,7 @@
  * Copyright (c) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
  * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
- * Copyright (C) 2005-2011 Regis Houssin        <regis@dolibarr.fr>
+ * Copyright (C) 2005-2012 Regis Houssin        <regis@dolibarr.fr>
  * Copyright (C) 2005      Lionel Cousteix      <etm_ltd@tiscali.co.uk>
  * Copyright (C) 2011      Herve Prot           <herve.prot@symeos.com>
  *
@@ -1724,15 +1724,15 @@ class User extends CommonObject
 
 		if ($nameorder)
 		{
-			if ($this->prenom) $ret.=$this->prenom;
-			if ($this->prenom && $this->nom) $ret.=' ';
-			if ($this->nom)      $ret.=$this->nom;
+			if ($this->firstname) $ret.=$this->firstname;
+			if ($this->firstname && $this->lastname) $ret.=' ';
+			if ($this->lastname)      $ret.=$this->lastname;
 		}
 		else
 		{
-			if ($this->nom)      $ret.=$this->nom;
-			if ($this->prenom && $this->nom) $ret.=' ';
-			if ($this->prenom) $ret.=$this->prenom;
+			if ($this->lastname)      $ret.=$this->lastname;
+			if ($this->firstname && $this->lastname) $ret.=' ';
+			if ($this->firstname) $ret.=$this->firstname;
 		}
 
 		return trim($ret);
@@ -1833,8 +1833,8 @@ class User extends CommonObject
 
 		// Champs
 		if ($this->fullname && $conf->global->LDAP_FIELD_FULLNAME) $info[$conf->global->LDAP_FIELD_FULLNAME] = $this->fullname;
-		if ($this->nom && $conf->global->LDAP_FIELD_NAME) $info[$conf->global->LDAP_FIELD_NAME] = $this->nom;
-		if ($this->prenom && $conf->global->LDAP_FIELD_FIRSTNAME) $info[$conf->global->LDAP_FIELD_FIRSTNAME] = $this->prenom;
+		if ($this->nom && $conf->global->LDAP_FIELD_NAME) $info[$conf->global->LDAP_FIELD_NAME] = $this->lastname;
+		if ($this->prenom && $conf->global->LDAP_FIELD_FIRSTNAME) $info[$conf->global->LDAP_FIELD_FIRSTNAME] = $this->firstname;
 		if ($this->login && $conf->global->LDAP_FIELD_LOGIN) $info[$conf->global->LDAP_FIELD_LOGIN] = $this->login;
 		if ($this->login && $conf->global->LDAP_FIELD_LOGIN_SAMBA) $info[$conf->global->LDAP_FIELD_LOGIN_SAMBA] = $this->login;
 		if ($this->pass && $conf->global->LDAP_FIELD_PASSWORD) $info[$conf->global->LDAP_FIELD_PASSWORD] = $this->pass;	// this->pass = mot de passe non crypte
@@ -1850,8 +1850,8 @@ class User extends CommonObject
 			if ($soc->fournisseur == 1) $info["businessCategory"] = "Suppliers";
 		}
 		if ($this->address && $conf->global->LDAP_FIELD_ADDRESS) $info[$conf->global->LDAP_FIELD_ADDRESS] = $this->address;
-		if ($this->cp && $conf->global->LDAP_FIELD_ZIP)          $info[$conf->global->LDAP_FIELD_ZIP] = $this->cp;
-		if ($this->ville && $conf->global->LDAP_FIELD_TOWN)      $info[$conf->global->LDAP_FIELD_TOWN] = $this->ville;
+		if ($this->cp && $conf->global->LDAP_FIELD_ZIP)          $info[$conf->global->LDAP_FIELD_ZIP] = $this->zip;
+		if ($this->ville && $conf->global->LDAP_FIELD_TOWN)      $info[$conf->global->LDAP_FIELD_TOWN] = $this->town;
 		if ($this->office_phone && $conf->global->LDAP_FIELD_PHONE) $info[$conf->global->LDAP_FIELD_PHONE] = $this->office_phone;
 		if ($this->user_mobile && $conf->global->LDAP_FIELD_MOBILE) $info[$conf->global->LDAP_FIELD_MOBILE] = $this->user_mobile;
 		if ($this->office_fax && $conf->global->LDAP_FIELD_FAX)	    $info[$conf->global->LDAP_FIELD_FAX] = $this->office_fax;