diff --git a/dist/formulaires/login.php b/dist/formulaires/login.php
index 9237f3a640cb949564ff9908154ccb1dc647b564..ec9a55940ed3e809871015aee69cd3ce949933bd 100644
--- a/dist/formulaires/login.php
+++ b/dist/formulaires/login.php
@@ -143,7 +143,12 @@ function formulaires_login_verifier_dist($cible="",$login="",$prive=null){
 		$identifier_login = charger_fonction('identifier_login','inc');
 		if (!$identifier_login($session_login, $session_password,
 		$session_md5pass, $session_md5next, $session_remember)){
-			$erreurs['password'] = _T('login_erreur_pass');
+			if (strlen($session_password) OR strlen($session_md5pass))
+				$erreurs['password'] = _T('login_erreur_pass');
+			// sinon c'est un login en deux passe old style (ou js en panne)
+			// pas de message d'erreur
+			else
+				$erreurs['password'] = ' ';
 		}
 		else {
 			# login ok
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 5d3d656b6b961f0ae32b850f6fb4af02907e0516..028ff22011e99a3a02cdb8f23e2e5c78946745b8 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -935,8 +935,8 @@ function generer_url_action($script, $args="", $no_entities=false ,$rel = false)
 	}
 	// sinon, on reste ou on est
 	$url = _DIR_RACINE
-		? generer_url_prive('action', $script)
-		: generer_url_public('action', $script);
+		? generer_url_ecrire()
+		: generer_url_public();
 	$url = parametre_url($url,'action',$script);
 	if ($args) $url .= quote_amp('&'.$args);
 	if ($redirect = parametre_url($url,'redirect')){