diff --git a/htdocs/admin/security.php b/htdocs/admin/security.php
index 84c5ecb92e4c3cb4fcc07152f4a92a4c54f88b33..fe20d868e83ae0cae6d0c977fb6707263b37f1b7 100644
--- a/htdocs/admin/security.php
+++ b/htdocs/admin/security.php
@@ -292,6 +292,7 @@ $var=!$var;
 	$this->NbRepeat = $tabConf[4];
 	$this->WithoutAmbi = $tabConf[5];
 	*/
+	print '<br>';
 	print '<table class="noborder" width="100%">';
 	print '<tr class="liste_titre">';
 	print '<td colspan="3"> '.$langs->trans("PasswordPatternDesc").'</td>';
@@ -332,12 +333,16 @@ $var=!$var;
 	print '<td>' . $langs->trans("NoAmbiCaracAutoGeneration")."</td>";
 	print '<td colspan="2"><input type="checkbox" id="NoAmbiCaracAutoGeneration" '.($tabConf[5] ? "checked" : "").' min="0"> <span id="textcheckbox">'.($tabConf[5] ? $langs->trans("Activated") : $langs->trans("Disabled")).'</span></td>';
 	print '</tr>';
+	
+	print '</table>';
 
-	$var=!$var;
-	print "<tr ".$bc[$var].">";
-	print '<td colspan="2"></td><td width="103" align="center"><a id="linkChangePattern">'.$langs->trans("Save").'</a></td>';
-	print '</tr>';
+	print '<br>';
+	print '<table align="right">';
+	print '<tr><td>';
+	print '<a class="button" id="linkChangePattern">'.$langs->trans("Save").'</a>';
+	print '</td></tr>';
 	print '</table>';
+	print '<br><br>';
 
 	print '<script type="text/javascript">';
 	print '	function getStringArg(){';
@@ -389,7 +394,7 @@ $var=!$var;
 // Cryptage mot de passe
 print '<br>';
 $var=true;
-print "<form method=\"post\" action=\"security.php\">";
+print "<form method=\"post\" action=\"" . $_SERVER["PHP_SELF"] . "\">";
 print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 print "<input type=\"hidden\" name=\"action\" value=\"encrypt\">";
 
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 9c2879db463dd52df39062561406970a45590db5..cfb5e9644bef13184523778f8ac8872dd0252f65 100755
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -1111,6 +1111,9 @@ EmptyNumRefModelDesc=The code is free. This code can be modified at any time.
 ##### Module password generation
 PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
 PasswordGenerationNone=Do not suggest any generated password. Password must be type in manually.
+PasswordGenerationPerso=Return a password according to your personally defined configuration.
+SetupPerso=According to your configuration
+PasswordPatternDesc=Password pattern description
 ##### Users setup #####
 UserGroupSetup=Users and groups module setup
 GeneratePassword=Suggest a generated password