diff --git a/formulaires/formulaire_login.html b/formulaires/formulaire_login.html
index fe19ecc39b46c4117536b293162577bd50f2be5f..cc9eae4c68301bf5d20954aa68629cef19a5e19e 100644
--- a/formulaires/formulaire_login.html
+++ b/formulaires/formulaire_login.html
@@ -27,7 +27,7 @@
 	alt="[(#ENV{login_alt})]" /></div>]
 	<input type="hidden" name="session_login_hidden" value="(#ENV{login})" />
 <script type="text/javascript"><!--
-document.write("<:login_login:>&nbsp;<strong>[(#ENV{login_alt})]<" + "/strong><br />&#91;<a style='color: #e86519' href='spip_cookie.php3?cookie_admin=non[&amp;url=(#ENV*{url}|urlencode)][&amp;retour=(#ENV*{self}|urlencode)]'><font size='2'><:login_autre_identifiant:><" + "/font><" + "/a>&#93;")
+document.write("<:login_login:>&nbsp;<strong>[(#ENV{login_alt})]<" + "/strong><br />&#91;<a style='color: #e86519' href='[(#ENV{action2})]?cookie_admin=non[&amp;url=(#ENV*{url}|urlencode)][&amp;retour=(#ENV*{self}|urlencode)]'><font size='2'><:login_autre_identifiant:><" + "/font><" + "/a>&#93;")
 //--></script>
 <noscript>
 	<p class='notes' style='font-size: 130%'>
diff --git a/formulaires/formulaire_login_forum.html b/formulaires/formulaire_login_forum.html
index 0c587dd7c9021f7fc9ab03c1ff3ea749f330f191..41e4ed722cd8b8e27dc4a9a99da233537a6d2424 100644
--- a/formulaires/formulaire_login_forum.html
+++ b/formulaires/formulaire_login_forum.html
@@ -1,7 +1,7 @@
 <!--
 
 	Formulaire de connexion pour les forums sur abonnement
-	cf. inc-formulaire_forum.php3
+	appele dans inc-formulaire_forum.php 
 
 -->
 
@@ -11,12 +11,12 @@
 
 <div align='center' style='font-family: Verdana,arial,helvetica,sans-serif; font-size: 12px;'>
 
-&#91;<a href='spip_inscription.php3?mode=forum&amp;focus=nom_inscription'
+&#91;<a [href='(#ENV{inscription})?mode=forum&amp;focus=nom_inscription']
 	target="spip_pass"
 	onclick="javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=500'); return false;"><:login_sinscrire:></a>&#93;
 
 &#91;<a
-		href="spip_pass.php3"
+		[href="(#ENV{oubli})"]
 		target="spip_pass" 
 		onclick="javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=280'); return false;"><:login_motpasseoublie:></a>&#93;
 
diff --git a/formulaires/formulaire_oubli.html b/formulaires/formulaire_oubli.html
index 512dafc22207d32773bacbccad568425ba324c04..1c42b5a5352f9f09cc932161ebe223d5f06a75c1 100644
--- a/formulaires/formulaire_oubli.html
+++ b/formulaires/formulaire_oubli.html
@@ -3,7 +3,7 @@
 ][
 (#ENV*{message}|?{'',' '})
 
-<form id="oubli_form" action='spip_pass.php3' method='post'>
+<form id="oubli_form" action='[(#ENV{action})]' method='POST'>
 	<fieldset class='spip_sanscadre'>
 	<legend><:pass_nouveau_pass:></legend>[
 	<input type='hidden' name="p" value="(#ENV{p})" />
diff --git a/formulaires/inc-formulaire_forum.php3 b/formulaires/inc-formulaire_forum.php3
index eef6af83769afc7807cea2adc08a597c85ce550b..f78dc39299a8b91566739cc984f64ca36c9b9582 100644
--- a/formulaires/inc-formulaire_forum.php3
+++ b/formulaires/inc-formulaire_forum.php3
@@ -92,7 +92,9 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq
 
 	// verifier l'identite des posteurs pour les forums sur abo
 	if (($forums_publics == "abo") && (!$GLOBALS["auteur_session"])) {
-		return array('formulaire_login_forum', 0, array());
+		return array('formulaire_login_forum', 0,
+			     array('inscription' => generer_url_public('spip_inscription'),
+				   'oubli' => generer_url_public('spip_pass')));
 	}
 
 	// ne pas mettre '', sinon le squelette n'affichera rien.
diff --git a/formulaires/inc-formulaire_recherche.php3 b/formulaires/inc-formulaire_recherche.php3
index 86b53801b5c92bdd623d38757de167002f93da10..89c88bbc4b39b3cbc6ce9f41f6272a250bd510fd 100644
--- a/formulaires/inc-formulaire_recherche.php3
+++ b/formulaires/inc-formulaire_recherche.php3
@@ -21,7 +21,7 @@ function balise_FORMULAIRE_RECHERCHE_stat($args, $filtres) {
 	if ($GLOBALS['meta']["activer_moteur"] != "oui")
 		return '';
 
-	// Seul un lien [(#FORMULAIRE_RECHERCHE|xxx.php3)] nous interesse
+	// filtres[0] doit etre un script (a revoir)
 	else
 	  return array($filtres[0], $args[0]);
 }
@@ -33,12 +33,9 @@ function balise_FORMULAIRE_RECHERCHE_dyn($lien, $rech) {
 		$recherche_securisee = _T('info_rechercher');
 	  }
 	}
-	if (!$lien)
-		$lien = 'recherche' .  _EXTENSION_PHP ;	# par defaut
 
 	return array('formulaire_recherche', 3600, 
-		array(
-			'lien' => $lien,
+		     array('lien' => ($lien ? $lien : generer_url_public('recherche')),
 			'recherche_securisee' => $recherche_securisee
 		));
 }
diff --git a/formulaires/inc-url_logout.php3 b/formulaires/inc-url_logout.php3
index c33269f7679c1ddf48130b6dba5bb84cdd5a2f61..bc24fa526dba3d004926e807aac7434ee3e9a9c3 100644
--- a/formulaires/inc-url_logout.php3
+++ b/formulaires/inc-url_logout.php3
@@ -29,8 +29,7 @@ function balise_URL_LOGOUT_dyn($cible) {
 		$cible = $link->getUrl();
 	}
 
-	return 'spip_cookie' . _EXTENSION_PHP . '?logout_public=' . $login
-		. '&amp;url=' . urlencode($cible);
+	return generer_url_public('spip_cookie', "logout_public=$login&url=" . urlencode($cible));
 }
 
 ?>
diff --git a/spip_pass.php3 b/spip_pass.php3
index f36e7898cdbfa2f2daa484cdeac88dd6f960762c..23498d2c80f269babeae947e7676d94e763283a3 100644
--- a/spip_pass.php3
+++ b/spip_pass.php3
@@ -82,7 +82,10 @@ $message = '';
 		}
 	}
  }
- return array('formulaire_oubli', 0, array('p' => $p, 'message' => $message));
+ return array('formulaire_oubli', 0, 
+	      array('p' => $p,
+		    'message' => $message,
+		    'action' => generer_url_public('spip_pass')));
 }
 
 function spip_pass_dist()