diff --git a/ecrire/public/assembler.php b/ecrire/public/assembler.php
index 8d27c0582203caaf1e12dc333628b60bfa357520..833f623d368e1677235fc0c9b6611230e157888d 100644
--- a/ecrire/public/assembler.php
+++ b/ecrire/public/assembler.php
@@ -366,7 +366,6 @@ function recuperer_fond($fond, $contexte=array()) {
 	$contexte['fond'] = $fond; // necessaire pour calculer correctement le cache
 
 	$page = inclure_page($fond, $contexte);
-
 	if ($GLOBALS['flag_ob'] AND ($page['process_ins'] != 'html')) {
 		ob_start();
 		eval('?' . '>' . $page['texte']);
@@ -465,11 +464,11 @@ function inclure_modele($type, $id, $params, $lien) {
 		$contexte['lien'] = str_replace(""",'"', $lien[0]);
 		$contexte['lien_class'] = $lien[1];
 	}
-	
+
 	// Traiter les parametres
 	// par exemple : <img1|center>, <emb12|autostart=true> ou <doc1|lang=en>
 	$contexte = array_merge($contexte,
-		creer_contexte_de_modele($params)); 
+		creer_contexte_de_modele($params));
 
 	// On cree un marqueur de notes unique lie a ce modele
 	// et on enregistre l'etat courant des globales de notes...
diff --git a/ecrire/public/parametrer.php b/ecrire/public/parametrer.php
index b2accec21cbb50060842c9e6fdc6079ea8cfbea5..bb53c0e27b5196105694c5ddb9bb117105496596 100644
--- a/ecrire/public/parametrer.php
+++ b/ecrire/public/parametrer.php
@@ -291,11 +291,16 @@ function public_parametrer_dist($fond, $local='', $cache='')  {
 	if (!isset($lang))
 		$lang = $GLOBALS['meta']['langue_site'];
 
-	if (!$GLOBALS['forcer_lang'])
+	if (!$GLOBALS['forcer_lang']
+	AND $lang <> $GLOBALS['spip_lang']
+	) {
 		lang_select($lang);
+		$lang_select = true;
+	}
 
 	$f = charger_fonction('styliser', 'public');
-	list($skel,$mime_type, $gram, $sourcefile) = $f($fond, $id_rubrique_fond,$GLOBALS['spip_lang']);
+	list($skel,$mime_type, $gram, $sourcefile) =
+		$f($fond, $id_rubrique_fond, $GLOBALS['spip_lang']);
 
 	// Charger le squelette en specifiant les langages cibles et source
 	// au cas il faudrait le compiler (source posterieure au resultat)
@@ -332,6 +337,10 @@ function public_parametrer_dist($fond, $local='', $cache='')  {
 		debug_dumpfile ($page['texte'], $fonc, 'resultat');
 	}
 	$page['contexte'] = $local;
+
+	if ($lang_select)
+		lang_dselect();
+
 	return $page;
 }