diff --git a/ecrire/inc_accueil.php b/ecrire/inc_accueil.php
index 749dc54905e5f85342fb251752e5088955ed6da0..381cdee15414b46ec42c13edcae1af4a4a1e6b56 100644
--- a/ecrire/inc_accueil.php
+++ b/ecrire/inc_accueil.php
@@ -223,7 +223,7 @@ if ($connect_statut == "0minirezo" AND $spip_display != 4) {
 			"</td>".
 			"<td width='250'>".
 			icone_horizontale(_T('icone_activer_cookie'),
-					  generer_url_ecrire( "../spip_cookie",
+					  generer_url_public('spip_cookie',
 							     "cookie_admin=".rawurlencode("@$connect_login")."&url=".rawurlencode(_DIR_RESTREINT_ABS)), "cookie-24.gif", "", false).
 			"</td></tr></table>";
 	}
diff --git a/ecrire/inc_auth.php3 b/ecrire/inc_auth.php3
index 004d6252a421191a7b1c726852ac7ec1603c56f1..32ba8b2c5ab2f10753cb475001e31d54d2a1a575 100644
--- a/ecrire/inc_auth.php3
+++ b/ecrire/inc_auth.php3
@@ -98,21 +98,13 @@ function auth_dist() {
 	}
 
 
-	// Tentative de login echec
-	if ($_GET['bonjour'] == 'oui' AND !$auth_login) {
-	  $link = new Link(generer_url_ecrire(_DIR_LOGIN . "spip_cookie","test_echec_cookie=oui"));
-		$clean_link->delVar('bonjour');
-		$url = str_replace('/./', '/', _DIR_LOGGED_IN .$clean_link->getUrl());
-		$link->addVar('url', $url);
-		redirige_par_entete($link->getUrl());
-		exit;
-	}
-
-	// Si pas authentifie, demander login / mdp
+	// pas authentifie, 
+	// demander login / mdp et nettoyer en cas de login en echec
 	if (!$auth_login) {
-		$url = str_replace('/./', '/',  _DIR_LOGGED_IN
-			. $clean_link->getUrl());
-		redirige_par_entete(generer_url_ecrire(_DIR_LOGIN . "spip_login"),"?url=".urlencode($url));
+		if ($_GET['bonjour'] == 'oui') $clean_link->delVar('bonjour');
+
+		$url = str_replace('/./', '/',  _DIR_LOGGED_IN. $clean_link->getUrl());
+		redirige_par_entete(generer_url_public('spip_login'),"?url=".urlencode($url));
 		exit;
 	}
 
@@ -202,13 +194,13 @@ function auth_dist() {
 			install_debut_html(_T('info_travaux_titre')); echo _T('titre_probleme_technique'), "<p><tt>".spip_sql_errno()." ".spip_sql_error()."</tt></p>";install_fin_html();
 		} else {
 
-			install_debut_html(_T('avis_erreur_connexion')); echo "<br><br><p>", _T('texte_inc_auth_1', array('auth_login' => $auth_login)), " <a href='",  generer_url_ecrire(_DIR_LOGIN . "spip_cookie","logout=$auth_login"), "'>", _T('texte_inc_auth_2'), "</A>",_T('texte_inc_auth_3');install_fin_html();
+			install_debut_html(_T('avis_erreur_connexion')); echo "<br><br><p>", _T('texte_inc_auth_1', array('auth_login' => $auth_login)), " <a href='",  generer_url_public('spip_cookie',"logout=$auth_login"), "'>", _T('texte_inc_auth_2'), "</A>",_T('texte_inc_auth_3');install_fin_html();
 		}
 		exit;
 	}
 
 	if (!$auth_pass_ok) {
-	  redirige_par_entete(generer_url_ecrire(_DIR_LOGIN . "spip_login"),"?var_erreur=pass");
+	  redirige_par_entete(generer_url_public('spip_login'),"?var_erreur=pass");
 	}
 
 	// Si c'est un nouvel inscrit, le passer de 'nouveau' a '1comite'
diff --git a/ecrire/inc_presentation.php3 b/ecrire/inc_presentation.php3
index 4d6ac737d37fda7e699c27501738437b23554f29..7cde0c0c986b1b39dec1795d6afe1c9f15b2a7af 100644
--- a/ecrire/inc_presentation.php3
+++ b/ecrire/inc_presentation.php3
@@ -1790,10 +1790,10 @@ function envoi_link($nom_site_spip, $rubrique="")
 
 	$res = "";
 	if ($spip_display != 4) {
-	  $res .= "<link rel='alternate' type='application/rss+xml' title='".addslashes($nom_site_spip)."' href='" . generer_url_ecrire("$adresse_site/backend","") . "'>\n";
+	  $res .= "<link rel='alternate' type='application/rss+xml' title='".addslashes($nom_site_spip)."' href='" . generer_url_public('backend') . "'>\n";
 		if ($GLOBALS['meta']["activer_breves"] != "non")
 			$res .= "\n<link rel='alternate' type='application/rss+xml' title='".addslashes($nom_site_spip)." ("._T("info_breves_03").
-			  ")' href='" . generer_url_ecrire("$adresse_site/backend-breves","") . "'>\n";
+			  ")' href='" . generer_url_public('backend-breves') . "'>\n";
 	}
 
 	return $res .
diff --git a/spip_cookie.php3 b/spip_cookie.php3
index df35105ee6e2fb3b21eea4f2d2252b8ca219a9d4..48c0b238d1d29d0a7123f36439114a900280724a 100644
--- a/spip_cookie.php3
+++ b/spip_cookie.php3
@@ -10,12 +10,10 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-
 include ("ecrire/inc_version.php3");
 include_ecrire ("inc_session");
 include_ecrire('inc_cookie');
-spip_log("uri: $REQUEST_URI");
-// gerer l'auth http
+
 function auth_http($url, $essai_auth_http) {
 	global $_SERVER;
 	if ($essai_auth_http == 'oui') {
@@ -119,7 +117,7 @@ if ($logout) {
 		unset ($auteur_session);
 	}
 
-	redirige_par_entete($url ? $url : "spip_login" . _EXTENSION_PHP);
+	redirige_par_entete($url ? $url : generer_url_public('spip_login'));
 }
 
 // en cas de login sur bonjour=oui, on tente de poser un cookie
@@ -127,8 +125,9 @@ if ($logout) {
 // le cas echeant.
 if ($test_echec_cookie == 'oui') {
 	spip_setcookie('spip_session', 'test_echec_cookie');
-	redirige_par_entete("spip_login" . _EXTENSION_PHP . "?var_echec_cookie=oui&url="
-		. ($url ? urlencode($url) : _DIR_RESTREINT_ABS));
+	redirige_par_entete(generer_url_public('spip_login'),
+			    "?var_echec_cookie=oui&url="
+			    . ($url ? urlencode($url) : _DIR_RESTREINT_ABS));
 }
 
 // Tentative de login
diff --git a/spip_pass.php3 b/spip_pass.php3
index 23498d2c80f269babeae947e7676d94e763283a3..2f8cb7e7ab6df2ab00935e6ec89a20edd5cd425b 100644
--- a/spip_pass.php3
+++ b/spip_pass.php3
@@ -47,7 +47,7 @@ function spip_pass_passcookie($email, $param)
 			  _T('pass_mail_passcookie',
 			     array('nom_site_spip' => $nom,
 				   'adresse_site' => $url, 
-				   'sendcookie' => generer_url_ecrire("$url/spip_pass", "$param=$cookie")))) )
+				   'sendcookie' => generer_url_public('spip_pass', "$param=$cookie")))) )
 	  return _T('pass_recevoir_mail');
 	else
 	  return  _T('pass_erreur_probleme_technique');