diff --git a/inc-calcul-squel.php3 b/inc-calcul-squel.php3
index 25c65609658ce8012003f4d0b72f87957fa27e27..651a68fec2ea729a1417676488f96553f7232c6e 100644
--- a/inc-calcul-squel.php3
+++ b/inc-calcul-squel.php3
@@ -1598,9 +1598,7 @@ function calculer_champ($id_champ, $id_boucle, $nom_var)
 	case 'LOGIN_PRIVE':
 		$milieu = '
 			$'.$nom_var.' = "<"."?php include_local (\'inc-login.php3\');
-				if (\$GLOBALS[\'var_url\']) \$cible = new Link(\$GLOBALS[\'var_url\']);
-				else \$cible = new Link(\'ecrire/\');
-				login (\$cible, \'prive\'); ?".">";
+				login (\'\', \'prive\'); ?".">";
 			';
 		break;
 
diff --git a/inc-forum.php3 b/inc-forum.php3
index 9751b6e6b3a2bb220cb50f2f890bd3b959330ea9..1d4e109d01d4e0a550d556c823d02a38a168e6b3 100644
--- a/inc-forum.php3
+++ b/inc-forum.php3
@@ -101,7 +101,6 @@ function forum_abonnement($retour) {
 		return true;	// autoriser le formulaire
 	else {
 		include_local("inc-login.php3");
-		$cible = new Link($retour);
 
 		$message_login = propre("Pour participer &agrave;
 		ce forum, vous devez vous enregistrer au pr&eacute;alable. Merci
@@ -110,8 +109,9 @@ function forum_abonnement($retour) {
 		vous n'en avez pas encore, vous pouvez").
 ' <script language="JavaScript"><!--
 document.write("<a href=\\"javascript:window.open(\\\'spip_pass.php3\\\', \\\'spip_pass\\\', \\\'scrollbars=yes,resizable=yes,width=740,height=580\\\'); void(0);\\"");
-//--></script><noscript><a href=\'spip_pass.php3\' target=\'_blank\'></noscript>demander de nouveaux identifiants</a>.';
-		login($cible, false, $message_login);
+//--></script><noscript><a href=\'spip_pass.php3\' target=\'_blank\'></noscript>demander un nouvel identifiant</a>.<br>';
+		login('', false, $message_login);
+		return false;
 	} 
 }
 
@@ -381,7 +381,9 @@ function retour_forum($id_rubrique, $id_parent, $id_article, $id_breve, $id_synd
 function ajout_forum() {
 	global $texte, $titre, $nom_site_forum, $url_site, $auteur, $email_auteur, $retour_forum, $id_message, $confirmer;
 	global $forum_id_rubrique, $forum_id_parent, $forum_id_article, $forum_id_breve, $forum_id_auteur, $forum_id_syndic, $alea, $hash;
-	global $hash_email, $email_forum_abo, $pass_forum_abo, $ajouter_mot, $new;
+//	global $hash_email, $email_forum_abo, $pass_forum_abo;
+	global $auteur_session;
+	global $ajouter_mot, $new;
 	global $HTTP_HOST, $REQUEST_URI, $HTTP_COOKIE_VARS, $REMOTE_ADDR;
 	$afficher_texte = $GLOBALS['afficher_texte'];
 	
@@ -473,8 +475,6 @@ function ajout_forum() {
 
 	}
 
-
-
 	$query_forum = "UPDATE spip_forum
 		SET id_parent = $forum_id_parent, id_rubrique =$forum_id_rubrique, id_article = $forum_id_article, id_breve = $forum_id_breve, id_syndic = \"$forum_id_syndic\", 
 			date_heure = NOW(), titre = \"$titre\", texte = \"$texte\", nom_site = \"$nom_site_forum\", url_site = \"$url_site\", auteur = \"$auteur\",
@@ -485,7 +485,7 @@ function ajout_forum() {
 
 
 	if ($forums_publics == 'abo') {
-	
+/*	
 		$cookie_email = $HTTP_COOKIE_VARS['spip_forum_email'];
 		if ($hash_email && $forum_id_auteur) {
 			if (verifier_action_auteur("email $cookie_email", $hash_email, $forum_id_auteur)) {
@@ -516,13 +516,11 @@ function ajout_forum() {
 				die ("<h4>Vous devez indiquer votre adresse et votre mot de passe.</h4>
 				Cliquez <a href='$retour_forum'>ici</a> pour continuer.<p>");
 			}
-		}
-
-		if ($ok) {
-			$id_auteur = $row[0];
-			$statut = $row[8];
+		}*/
+		if ($auteur_session) {
+			$statut = $auteur_session['statut'];
 			
-			if ($statut == '5poubelle') {
+			if (!$statut OR $statut == '5poubelle') {
 				die ("<h4>Vous n'avez plus acc&egrave;s &agrave; ces forums.</h4>Cliquez <a href='$retour_forum'>ici</a> pour continuer.<p>");
 			}
 		}
@@ -532,12 +530,9 @@ function ajout_forum() {
 		}
 	}
 
-
-	
 	if (strlen($confirmer) > 0 OR ($afficher_texte=='non' AND $ajouter_mot)) {
 		spip_query("UPDATE spip_forum SET statut=\"$etat\" WHERE id_forum='$id_message'");
 	
-
 		$texte = stripslashes($texte);
 		$titre = stripslashes($titre);
 		$auteur = stripslashes($auteur);
diff --git a/inc-login.php3 b/inc-login.php3
index ac0633f9d45ee60bb4bb199a7aa3d340b658872c..90cc525147e267391e7304f87d29c7e862c2bab8 100644
--- a/inc-login.php3
+++ b/inc-login.php3
@@ -37,45 +37,50 @@ function auth_http($cible, $essai_auth_http) {
 }
 
 function ouvre_login($titre) {
-	//$retour .= debut_cadre_enfonce("redacteurs-24.gif");
 	
 	$retour .= "<div class='spip_encadrer'>";
 	
-	//if ($titre) $retour .= gros_titre($titre);
 	if ($titre) $retour .= "<h3 class='spip'>$titre</h3>";
 	
-	$retour .= '<font size="2" face="arial,helvetica,sans-serif">';
+	$retour .= '<font size="2" face="Verdana,arial,helvetica,sans-serif">';
 	return $retour;
 }
 
 function ferme_login() {
 	$retour =  "</font>";
-	//$retour .= fin_cadre_enfonce();
 	$retour .= "<div>";
 	return $retour;
 }
 
-function login($cible, $prive = 'prive', $message_login='') {
+function login($cible = '', $prive = 'prive', $message_login='') {
 	$login = $GLOBALS['var_login'];
 	$erreur = $GLOBALS['var_erreur'];
 	$echec_cookie = $GLOBALS['var_echec_cookie'];
 	$essai_auth_http = $GLOBALS['var_essai_auth_http'];
 	$logout = $GLOBALS['var_logout'];
+
+	global $auteur_session;
+	global $spip_session, $PHP_AUTH_USER;
 	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;
+	if (!$cible) {
+		if ($GLOBALS['var_url']) $cible = new Link($GLOBALS['var_url']);
+		else if ($prive) $cible = new Link('ecrire');
+		else $cible = $clean_link;
+	}
+	$cible->delVar('var_erreur');
+	$cible->delVar('var_url');
+	$clean_link->delVar('var_erreur');
+	$clean_link->delVar('var_login');
 
 	include_ecrire("inc_session.php3");
 	verifier_visiteur();
-	if ($auteur_session AND ! $logout) {
+	if ($auteur_session AND !$logout) {
 		$url = $cible->getUrl();
 		@Header("Location: $url");
-		echo "<a href='$url'>Vous &ecirc;tes en registr&eacute;... par ici...</a>\n";
+		echo "<a href='$url'>Vous &ecirc;tes enregistr&eacute;... par ici...</a>\n";
 		return;
 	}
 
@@ -134,7 +139,7 @@ document.write("<a href=\\"javascript:window.open(\\\'spip_pass.php3\\\', \\\'sp
         	vous devez entrer les codes qui vous ont &eacute;t&eacute;
         	fournis lors de votre inscription.";
 
-		echo "<br><font size='2'>$message_login</font><br>\n";
+		echo "<br>$message_login<br>\n";
 	}
 
 
@@ -180,7 +185,7 @@ document.write("<a href=\\"javascript:window.open(\\\'spip_pass.php3\\\', \\\'sp
 	}
 	else { // demander seulement le login
 
-		$url = $cible->getUrl();
+		$url = urlencode($cible->getUrl());
 		$action = $clean_link->getUrl();
 
 		echo "<form name='form_login' action='$action' method='post' class='spip_encadrer'>\n";
@@ -188,7 +193,7 @@ document.write("<a href=\\"javascript:window.open(\\\'spip_pass.php3\\\', \\\'sp
 		echo "<label><b>Login (identifiant de connexion au site)&nbsp;:</b><br></label>";
 		echo "<input type='text' name='var_login' class='forml' value=\"\" size='40'>\n";
 
-		echo "<input type='hidden' name='url' value='$url'>\n";
+		echo "<input type='hidden' name='var_url' value='$url'>\n";
 		echo "<div align='right'><input type='submit' class='spip_bouton' name='submit' value='Valider'></div>\n";
 		echo "</form>";
 	}
@@ -203,16 +208,14 @@ document.write("<a href=\\"javascript:window.open(\\\'spip_pass.php3\\\', \\\'sp
 		echo "de connexion (moins s&eacute;curis&eacute;e) est &agrave; votre disposition&nbsp;: \n";
 		echo "<input type='hidden' name='essai_auth_http' value='oui'> ";
 		$url = $cible->getUrl();
-		echo "<input type='hidden' name='url' value='$url'>\n";
+		echo "<input type='hidden' name='var_url' value='$url'>\n";
 		echo "<div align='right'><input type='submit' name='submit' class='spip_bouton' value='Identification sans cookie'></div>\n";
 		echo "</fieldset></form>\n";
 	}
 
-
 	if ($prive) echo "[<a href='$url_site'>retour au site public</a>]";
 
 	echo ferme_login();
-
 }
 
 ?>
diff --git a/inc-public-global.php3 b/inc-public-global.php3
index 6d3b0d9d4bf5b942574c9ae98424014d1abb081c..ced0603450c0d65bb4ae268f448fd77eb38a09b3 100644
--- a/inc-public-global.php3
+++ b/inc-public-global.php3
@@ -157,7 +157,14 @@ if ($var_recherche AND $flag_ob AND $flag_preg_replace AND !$flag_preserver AND
 
 $effacer_cache = !$delais; // $delais peut etre modifie par une inclusion de squelette...
 if (file_exists($chemin_cache)) {
-	if ($lastmodified) @Header ("Last-Modified: ".gmdate("D, d M Y H:i:s T", $lastmodified));
+	if (!$effacer_cache) {
+		if ($lastmodified) @Header ("Last-Modified: ".gmdate("D, d M Y H:i:s T", $lastmodified));
+	}
+	else {
+		@Header("Expires: 0");
+		@Header("Cache-Control: no-cache,no-store");
+		@Header("Pragma: no-cache");
+	}
 	include ($chemin_cache);
 }
 
diff --git a/spip_cookie.php3 b/spip_cookie.php3
index 2fb8f1d976b6cb8f4a0ce21b493a59c376df728d..f41f9f530a00f5154cdf4b74768f4e21e0a16dc1 100644
--- a/spip_cookie.php3
+++ b/spip_cookie.php3
@@ -5,8 +5,8 @@ include_ecrire ("inc_connect.php3");
 include_ecrire ("inc_meta.php3");
 include_ecrire ("inc_session.php3");
 
-if ($url)
-	$cible = new Link(urldecode($url));
+if ($url = $HTTP_POST_VARS['url'])
+	$cible = new Link($url);
 else
 	$cible = new Link('ecrire/');
 
@@ -20,7 +20,6 @@ if ($change_session == 'oui') {
 		@header('Expires: 0');
 		@header("Cache-Control: no-store, no-cache, must-revalidate");
 		@header('Pragma: no-cache');
-		@header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
 		@header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
 		@readfile('ecrire/img_pack/rien.gif');
 		exit;
@@ -83,6 +82,7 @@ if ($essai_login == "oui") {
 	}
 
 	$query = "SELECT * FROM spip_auteurs WHERE login='$login' AND pass='$md5pass' AND statut<>'5poubelle'";
+	echo "$query<p>";
 
 	$result = spip_query($query);
 
@@ -111,11 +111,11 @@ if ($essai_login == "oui") {
 	else {
 		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));
 		}
+		$cible->addVar('var_login', $login);
+		if ($session_password || $session_password_md5)
+			$cible->addVar('var_erreur', 'pass');
+		$cible->addVar('var_url', urldecode($url));
 	}
 }