diff --git a/htdocs/install/etape5.php b/htdocs/install/etape5.php
index 11dac0c0f9334351db2a679aa4083f01690c5e0c..b6e5e00feaea7cc42dca319020671aac4871655b 100644
--- a/htdocs/install/etape5.php
+++ b/htdocs/install/etape5.php
@@ -99,24 +99,30 @@ if ($_POST["action"] == "set" || $_POST["action"] == "upgrade")
         {
 			$conf->setValues($db);
 
-            $sql = "INSERT INTO llx_user(datec,login,pass,admin,name) VALUES (now()";
-            $sql.= ",'".$_POST["login"]."'";
-            $sql.= ",'".($conf->password_encrypted?md5($_POST["pass"]):$_POST["pass"])."'";
-            $sql.= ",1,'Administrateur')";
-	    	//print "sql=".$sql." ".mysql_errno($db->db);
-
-			dolibarr_install_syslog('install/etape5.php sql='.$sql, LOG_INFO);
-	        $resql=$db->query($sql);
-	        if ($resql)
+			// Create user
+			include_once(DOL_DOCUMENT_ROOT ."/user.class.php");
+
+			$createuser=new User($db);
+			$createuser->id=0;
+			
+			$newuser = new User($db);
+			$newuser->nom='Admin';
+			$newuser->prenom='';
+			$newuser->login=$_POST["login"];
+			$newuser->pass=$_POST["pass"];
+			$newuser->admin=1;
+
+			$result=$newuser->create($createuser,1);
+	        if ($result > 0)
 	        {
 	            print $langs->trans("AdminLoginCreatedSuccessfuly",$_POST["login"])."<br>";
 	            $success = 1;
 	        }
 	        else
 	        {
-	            if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS')
+	            if ($newuser->error == 'ErrorLoginAlreadyExists')
 	            {
-					dolibarr_install_syslog('install/etape5.php DB_ERROR_RECORD_ALREADY_EXISTS', LOG_WARNING);
+					dolibarr_install_syslog('install/etape5.php ErrorLoginAlreadyExists', LOG_WARNING);
 	                print '<br><div class="warning">'.$langs->trans("AdminLoginAlreadyExists",$_POST["login"])."</div><br>";
 	                $success = 1;
 	            }
diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang
index 0f31f2447d8edbeaf6a26e26fd0f0d5629b8efad..7b92d5a69b4ce1d65e984b74d034413f8bb3b425 100644
--- a/htdocs/langs/en_US/errors.lang
+++ b/htdocs/langs/en_US/errors.lang
@@ -13,3 +13,4 @@ ErrorBadSupplierCodeSyntax=Bad syntax for supplier code
 ErrorSupplierCodeRequired=Supplier code required
 ErrorSupplierCodeAlreadyUsed=Supplier code already used
 ErrorBadParameters=Bad parameters
+UserCannotBeDelete=User can not be deleted. May be it is associated on Dolibarr entities.
\ No newline at end of file
diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang
index 82aa53620d738e586c12726dea475351000b3384..e303f6fe5ad9b7d69a191a94ca1e6aea768a99a6 100644
--- a/htdocs/langs/en_US/install.lang
+++ b/htdocs/langs/en_US/install.lang
@@ -73,7 +73,7 @@ SetupEnd=End of setup
 SystemIsInstalled=Your system is now installed.
 SystemIsUpgraded=Dolibarr has been upgraded successfully.
 YouNeedToPersonalizeSetup=Now you must configure Dolibarr to match your needs (Look choice, functionnalities, ...). For this, click on the following link:
-AdminLoginCreatedSuccessfuly=Administrator login created successfuly.
+AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfuly.
 GoToSetupArea=Go to setup area
 Examples=Examples
 WithNoSlashAtTheEnd=Without the slash "/" at the end
@@ -81,7 +81,7 @@ DirectoryRecommendation=It is recommanded to put this directry out of directory
 LoginAlreadyExists=Already exists
 DolibarrAdminLogin=Dolibarr admin login
 FailedToCreateAdminLogin=Failed to create Dolibarr administator account.
-AdminLoginAlreadyExists=Dolibarr administrator account '%s' already exists.
+AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists.
 WarningRemoveInstallDir=Warning, for security reasons, once install or upgrade is finished, you have to remove the install directory.
 ThisPHPDoesNotSupportTypeBase=This PHP system does not support interfaces to access database type %s
 FunctionNotAvailableInThisPHP=Not available on this PHP
diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang
index a8780f69920af5544f30d38e19ba46d1aac1956a..3953d40c58ee85db6c48ebc9724e4b397ebc954e 100644
--- a/htdocs/langs/fr_FR/errors.lang
+++ b/htdocs/langs/fr_FR/errors.lang
@@ -13,3 +13,4 @@ ErrorBadSupplierCodeSyntax=La syntaxe du code fournisseur est incorrect
 ErrorSupplierCodeRequired=Code fournisseur obligatoire
 ErrorSupplierCodeAlreadyUsed=Code fournisseur deja utilise
 ErrorBadParameters=Parametres incorrects
+UserCannotBeDelete=L'utilisateur ne peut pas etre supprim�e. Peut-�tre est-il associ� � des �l�ments de Dolibarr.
\ No newline at end of file
diff --git a/htdocs/langs/fr_FR/install.lang b/htdocs/langs/fr_FR/install.lang
index bf0fb35387e8550f858b181c34a0c51d0b0b5b4e..d530b9eddffbc680dadf5eed522106e559653aeb 100644
--- a/htdocs/langs/fr_FR/install.lang
+++ b/htdocs/langs/fr_FR/install.lang
@@ -75,7 +75,7 @@ SetupEnd=Fin de l'installation
 SystemIsInstalled=Votre syst�me est maintenant install�.
 SystemIsUpgraded=Dolibarr a �t� mis � jour avec succ�s.
 YouNeedToPersonalizeSetup=Vous devez maintenant configurer Dolibarr selon vos besoins (Choix de l'apparence, des fonctionnalit�s, etc.). Pour cela, cliquez sur le lien ci-dessous:
-AdminLoginCreatedSuccessfuly=Cr�ation du compte administrateur r�ussie.
+AdminLoginCreatedSuccessfuly=Cr�ation du compte administrateur Dolibarr '<b>%s</b>' r�ussie.
 GoToSetupArea=Acc�s � l'espace de configuration
 Examples=Exemples
 WithNoSlashAtTheEnd=Sans le slash "/" � la fin
@@ -83,7 +83,7 @@ DirectoryRecommendation=Il est recommand
 LoginAlreadyExists=Existe d�j�
 DolibarrAdminLogin=Login de l'utilisateur administrateur de Dolibarr
 FailedToCreateAdminLogin=Echec de la cr�ation du compte administrateur Dolibarr.
-AdminLoginAlreadyExists=Compte administrateur Dolibarr '%s' d�j� existant.
+AdminLoginAlreadyExists=Compte administrateur Dolibarr '<b>%s</b>' d�j� existant.
 WarningRemoveInstallDir=Attention, pour des raisons de s�curit�, une fois l'installation termin�e, il est n�cessaire de supprimer le r�pertoire install.
 ThisPHPDoesNotSupportTypeBase=Le syst�me PHP ne supporta pas les interfaces d'acc�s pour les bases %s
 FunctionNotAvailableInThisPHP=Non disponible sur ce PHP
diff --git a/htdocs/user.class.php b/htdocs/user.class.php
index 81ce9b61acfaa72ee68ee43b3fb48329ff545c70..35382cad445bdcf7db0049803314b211d3904e28 100644
--- a/htdocs/user.class.php
+++ b/htdocs/user.class.php
@@ -682,13 +682,14 @@ class User extends CommonObject
    */
 	function create($user='',$notrigger=0)
 	{
-		global $conf,$langs;
+		global $conf;
 		
 		// Nettoyage parametres
 		$this->login = trim($this->login);
 		
-		dolibarr_syslog("User::Create login=".$this->login.", user=".$user->id);
+		dolibarr_syslog("User::Create login=".$this->login.", user=".(is_object($user)?$user->id:''));
 		
+		$error=0;
 		$this->db->begin();
 		
 		$sql = "SELECT login FROM ".MAIN_DB_PREFIX."user";
@@ -701,7 +702,7 @@ class User extends CommonObject
 			
 			if ($num)
 			{
-				$this->error = $langs->trans("ErrorLoginAlreadyExists");
+				$this->error = 'ErrorLoginAlreadyExists';
 				return -6;
 			}
 			else
@@ -731,7 +732,7 @@ class User extends CommonObject
 						return -4;
 					}
 
-					if ($conf->global->STOCK_USERSTOCK == 1 && $conf->global->STOCK_USERSTOCK_AUTOCREATE == 1)
+					if (! empty($conf->global->STOCK_USERSTOCK) && ! empty($conf->global->STOCK_USERSTOCK_AUTOCREATE))
 					{
 						require_once(DOL_DOCUMENT_ROOT."/product/stock/entrepot.class.php");
 						$entrepot = new Entrepot($this->db);
diff --git a/htdocs/user/fiche.php b/htdocs/user/fiche.php
index 827793e46bc616f357c36edecb0151aebbb1c8d6..b60432de77c089d27efd08b334d780197631b39c 100644
--- a/htdocs/user/fiche.php
+++ b/htdocs/user/fiche.php
@@ -114,6 +114,7 @@ if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == "yes")
         $result = $edituser->delete();
         if ($result < 0)
         {
+			$langs->load("errors");
         	$message='<div class="error">'.$langs->trans("UserCannotBeDelete").'</div>';
         }
         else