diff --git a/inc-balises.php3 b/inc-balises.php3
index e18e9416c9e794caeb5db293fb89873abf693061..3b538a25faacd1950400d1982059a214814e8df3 100644
--- a/inc-balises.php3
+++ b/inc-balises.php3
@@ -43,7 +43,7 @@ function champs_traitements ($p) {
 		'NOM_SITE_SPIP' => 'typo(%s)',
 		'NOM_SITE' => 'typo(%s)',
 		'NOM' => 'typo(%s)',
-		'PARAMETRES_FORUM' => 'htmlspecialchars(%s)',
+		'PARAMETRES_FORUM' => 'htmlspecialchars(lang_parametres_forum(%s))',
 		'PS' => 'traiter_raccourcis(%s)',
 		'SOUSTITRE' => 'typo(%s)',
 		'SURTITRE' => 'typo(%s)',
diff --git a/inc-calcul-outils.php3 b/inc-calcul-outils.php3
index 8c92ad3c27c1d8e1b43aeb2c6576a6a7b6b9fafb..41e3ccfdd1abb10a7b45b81ff6194d3f4671bf0c 100644
--- a/inc-calcul-outils.php3
+++ b/inc-calcul-outils.php3
@@ -512,4 +512,24 @@ function sql_rubrique_fond($contexte) {
 	}
 }
 
+// Ajouter "&lang=..." si la langue de base n'est pas celle du site
+function lang_parametres_forum($s) {
+
+	// ne pas se fatiguer si le site est unilingue (plus rapide)
+	if (strstr(lire_meta('langues_utilisees'), ',')
+	// chercher l'identifiant qui nous donnera la langue
+	AND preg_match(',id_(article|breve|rubrique|syndic)=([0-9]+),', $s, $r)){
+		$objet = $r[1];
+		$id = $r[2];
+		list($lang) = spip_fetch_array(spip_query(
+			"SELECT lang FROM spip_${objet}s WHERE id_$objet=$id"
+		));
+		// Si ce n'est pas la meme que celle du site, l'ajouter aux parametres
+		if ($lang AND $lang <> lire_meta('langue_site'))
+			$s .= "&lang=$lang";
+	}
+
+	return $s;
+}
+
 ?>
\ No newline at end of file