diff --git a/inc-login.php3 b/inc-login.php3
index 8a9e9e845e8cd4418bcff217b50b0608ebe54ef1..ac0633f9d45ee60bb4bb199a7aa3d340b658872c 100644
--- a/inc-login.php3
+++ b/inc-login.php3
@@ -64,6 +64,9 @@ function login($cible, $prive = 'prive', $message_login='') {
 	global $spip_admin;
 	global $php_module;
 	global $clean_link;
+		$clean_link->delVar('var_erreur');
+		$clean_link->delVar('var_login');
+
 	global $auteur_session;
 	global $spip_session, $PHP_AUTH_USER;
 
diff --git a/spip_cookie.php3 b/spip_cookie.php3
index 454a106fb9fb509ad897d48c204c8a3523d209a3..2fb8f1d976b6cb8f4a0ce21b493a59c376df728d 100644
--- a/spip_cookie.php3
+++ b/spip_cookie.php3
@@ -109,9 +109,13 @@ if ($essai_login == "oui") {
 			$cible->addVar('bonjour','oui');
 	}
 	else {
-		$cible->addVar('var_login', $login);
-		if ($session_password || $session_password_md5)
-			$cible->addVar('var_erreur', 'pass');
+		if (ereg("ecrire/", $cible->getUrl())) {
+			$cible = new Link("./spip_login.php3");
+			$cible->addVar('var_login', $login);
+			if ($session_password || $session_password_md5)
+				$cible->addVar('var_erreur', 'pass');
+			$cible->addVar('url', urldecode($url));
+		}
 	}
 }