diff --git a/ecrire/action/instituer.php b/ecrire/action/instituer.php
index e33ca77aec59f4896eab5e84b924afb061048109..c208b842d03cb5882de17aed61b0df0eec59fae3 100644
--- a/ecrire/action/instituer.php
+++ b/ecrire/action/instituer.php
@@ -149,7 +149,7 @@ function instituer_breve($arg) {
 }
 
 
-function instituer_langue($arg)
+function instituer_langue_rubrique($arg)
 {
 	$changer_lang = _request('changer_lang');
 	list($id_rubrique, $id_parent) = preg_split('/\W/', $arg);
@@ -179,4 +179,22 @@ function instituer_langue($arg)
 	}
 }
 
+function instituer_langue_article($arg)
+{
+	$changer_lang = _request('changer_lang');
+
+	if ($GLOBALS['meta']['multi_articles'] == 'oui' AND $changer_lang) {
+		list($id_article, $id_rubrique) = preg_split('/\W/', $arg);
+		if ($changer_lang != "herit")
+			spip_query("UPDATE spip_articles SET lang=" . spip_abstract_quote($changer_lang) . ", langue_choisie='oui' WHERE id_article=$id_article");
+		else {
+			$langue_parent = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=" . $id_rubrique));
+			$langue_parent=$langue_parent['lang'];
+			spip_query("UPDATE spip_articles SET lang=" . spip_abstract_quote($langue_parent) . ", langue_choisie='non' WHERE id_article=$id_article");
+			include_spip('inc/lang');
+			calculer_langues_utilisees();
+		}
+	}
+ }
+
 ?>
diff --git a/ecrire/exec/articles.php b/ecrire/exec/articles.php
index 28b78e4adddebfddc1532a418c74e2277b206557..f8a5c6e00f9fb2073249316ce35ac08b1ea5f042 100644
--- a/ecrire/exec/articles.php
+++ b/ecrire/exec/articles.php
@@ -192,32 +192,12 @@ if ($flag_editable) {
  if ($spip_display != 4)
  afficher_documents_non_inclus($id_article, "article", $flag_editable);
 
-//
-// "Demander la publication"
-//
-
+ if ($flag_auteur AND $statut_article == 'prepa')
+	echo demande_publication($id_article);
 
-if ($flag_auteur AND $statut_article == 'prepa') {
-	echo "<P>";
-	debut_cadre_relief();
-	echo	"<center>",
-		"<B>"._T('texte_proposer_publication')."</B>",
-		aide ("artprop"),
-		"\n<form method='post' action='",
-		redirige_action_auteur("instituer", "article-$id_article-prop", 'articles', "id_article=$id_article"),
-      "'>",
-		"<input type='submit' class='fondo' value=\"", 
-		_T('bouton_demande_publication'),
-		"\" />\n",
-		"</form>",
-		"</center>";
-	fin_cadre_relief();
-}
-
-echo "</div>";
-
-echo "</div>";
-fin_cadre_relief();
+ echo "</div>";
+ echo "</div>";
+ fin_cadre_relief();
 
  affiche_forums_article($id_article, $id_rubrique, $titre, $debut);
 
@@ -225,6 +205,24 @@ fin_page();
 
 }
 
+function demande_publication($id_article)
+{
+	return debut_cadre_relief('',true) .
+		"<center>" .
+		"<b>" ._T('texte_proposer_publication') . "</b>" .
+		aide ("artprop") .
+		redirige_action_auteur("instituer", 
+			"article-$id_article-prop",
+			'articles',
+			"id_article=$id_article",
+			("<input type='submit' class='fondo' value=\"" . 
+			    _T('bouton_demande_publication') .
+			    "\" />\n"),
+			"method='post'") .
+		"</center>" .
+		fin_cadre_relief(true);
+}
+
 function boite_info_articles($id_article, $statut_article, $visites, $id_version)
 {
   global $connect_statut, $options, $flag_revisions;
@@ -698,9 +696,9 @@ function langues_articles($id_article, $langue_article, $flag_editable, $id_rubr
 			$langue_article = $langue_parent;
 
 		debut_cadre_couleur();
-		echo "<div style='text-align: center;'>";
-		echo menu_langues('changer_lang', $langue_article, _T('info_multi_cet_article').' ', $langue_parent);
-		echo "</div>\n";
+		echo "<div style='text-align: center;'>",
+			menu_langues('changer_lang', $langue_article, _T('info_multi_cet_article').' ', $langue_parent, redirige_action_auteur('instituer', "langue_article-$id_article-$id_rubrique","articles","id_article=$id_article")),
+			"</div>\n";
 		fin_cadre_couleur();
 
 		echo fin_block();
@@ -1248,12 +1246,11 @@ function affiche_forums_article($id_article, $id_rubrique, $titre, $debut, $mute
 
 function afficher_statut_articles($id_article, $rubrique_article, $statut_article)
 {
-  return "\n<form method='post' action='" .
-	redirige_action_auteur("instituer", "article-$id_article",'articles', "id_article=$id_article") .
-      "'>" .
+  return redirige_action_auteur("instituer", "article-$id_article",'articles', "id_article=$id_article",
+	(
 	debut_cadre_relief("", true) .
-	"\n<center>" . "<B>" ._T('texte_article_statut') ."</B>" .
-	"\n<SELECT NAME='statut_nouv' SIZE='1' CLASS='fondl'\n" .
+	"\n<center>" . "<b>" ._T('texte_article_statut') ."</b>" .
+	"\n<select name='statut_nouv' size='1' class='fondl'\n" .
 	"onChange=\"document.statut.src='" .
 	_DIR_IMG_PACK .
 	"' + puce_statut(options[selectedIndex].value);" .
@@ -1264,7 +1261,7 @@ function afficher_statut_articles($id_article, $rubrique_article, $statut_articl
 	"<option"  . mySel("poubelle", $statut_article) .
 	http_style_background('rayures-sup.gif')  . '>'  ._T('texte_statut_poubelle') ."</option>\n" .
 	"<option"  . mySel("refuse", $statut_article)  . " style='background-color: #FFA4A4'>" ._T('texte_statut_refuse') ."</option>\n" .
-	"</SELECT>" .
+	"</select>" .
 	" &nbsp; " .
 	http_img_pack("puce-".puce_statut($statut_article).'.gif', "", "border='0' NAME='statut'") .
 	"  &nbsp;\n" .
@@ -1273,8 +1270,8 @@ function afficher_statut_articles($id_article, $rubrique_article, $statut_articl
 	"</span>" .
 	aide("artstatut") .
 	"</center>" .
-	fin_cadre_relief('', true) .
-	"\n</form>";
+	fin_cadre_relief('', true)), 
+			   " method='post'");
 }
 
 //
@@ -1291,24 +1288,6 @@ function trop_longs_articles($texte_plus)
 	return $texte_ajout;
 }
 
-
-function modif_langue_articles($id_article, $id_rubrique, $changer_lang)
-{
-
-// Appliquer la modification de langue
- if ($GLOBALS['meta']['multi_articles'] == 'oui') {
-	$langue_parent = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=" . $id_rubrique));
-	$langue_parent=$langue_parent['lang'];
-	if ($changer_lang) {
-		if ($changer_lang != "herit")
-			spip_query("UPDATE spip_articles SET lang=" . spip_abstract_quote($changer_lang) . ", langue_choisie='oui' WHERE id_article=$id_article");
-		else
-			spip_query("UPDATE spip_articles SET lang=" . spip_abstract_quote($langue_parent) . ", langue_choisie='non' WHERE id_article=$id_article");
-                calculer_langues_utilisees();
-	}
- }
-}
-
 // Passer les images/docs en "inclus=non"
 
 function inclus_non_articles($id_article)
@@ -1427,7 +1406,7 @@ function insert_article($id_parent)
 
 function exec_articles_dist()
 {
-  global $ajout_auteur, $annee, $annee_redac, $avec_redac, $change_accepter_forum, $change_petition, $changer_lang, $changer_virtuel, $chapo, $cherche_auteur, $cherche_mot, $connect_id_auteur, $date, $date_redac, $debut, $heure, $heure_redac, $id_article, $id_article_bloque, $id_parent, $id_rubrique_old, $id_secteur, $id_trad_new, $jour, $jour_redac, $langue_article, $lier_trad, $minute, $minute_redac, $mois, $mois_redac, $new, $nom_select, $nouv_auteur, $nouv_mot, $supp_auteur, $supp_mot, $titre, $titre_article, $virtuel; 
+  global $ajout_auteur, $annee, $annee_redac, $avec_redac, $change_accepter_forum, $change_petition, $changer_virtuel, $chapo, $cherche_auteur, $cherche_mot, $connect_id_auteur, $date, $date_redac, $debut, $heure, $heure_redac, $id_article, $id_article_bloque, $id_parent, $id_rubrique_old, $id_secteur, $id_trad_new, $jour, $jour_redac, $langue_article, $lier_trad, $minute, $minute_redac, $mois, $mois_redac, $new, $nom_select, $nouv_auteur, $nouv_mot, $supp_auteur, $supp_mot, $titre, $titre_article, $virtuel; 
 
 
  $id_parent = intval($id_parent);
@@ -1482,9 +1461,6 @@ if ($jour_redac) {
 	spip_query("UPDATE spip_articles SET date_redac='" . format_mysql_date($annee_redac, $mois_redac, $jour_redac, $heure_redac, $minute_redac) ."' WHERE id_article=$id_article");
 }
 
-
-modif_langue_articles($id_article, $id_rubrique, $changer_lang);
-
 maj_documents($id_article, 'article');
 
 if ($changer_virtuel) {
diff --git a/ecrire/exec/naviguer.php b/ecrire/exec/naviguer.php
index 2f248693f494c3645f23290efd0a94a747de8f61..0ec3ef969accd3a9c91d21feeb15c23b2f12bf03 100644
--- a/ecrire/exec/naviguer.php
+++ b/ecrire/exec/naviguer.php
@@ -260,7 +260,7 @@ if ($id_rubrique>0 AND $GLOBALS['meta']['multi_rubriques'] == 'oui' AND ($GLOBAL
 
 	echo debut_block_invisible('languesrubrique');
 	echo "<div class='verdana2' align='center'>";
-	echo menu_langues('changer_lang', $langue_rubrique, '', $langue_parent, redirige_action_auteur('instituer', "langue-$id_rubrique-$id_parent","naviguer","id_rubrique=$id_rubrique"), $ze_logo, "supprimer.gif");
+	echo menu_langues('changer_lang', $langue_rubrique, '', $langue_parent, redirige_action_auteur('instituer', "langue_rubrique-$id_rubrique-$id_parent","naviguer","id_rubrique=$id_rubrique"), $ze_logo, "supprimer.gif");
 	echo "</div>\n";
 	echo fin_block();
 
diff --git a/ecrire/inc/actions.php b/ecrire/inc/actions.php
index da99f2340b23aab94d4818ffeb4ffcb2b49e3b88..5c77f83f16bcf16578250e9c0010c6ed80388f63 100644
--- a/ecrire/inc/actions.php
+++ b/ecrire/inc/actions.php
@@ -68,9 +68,9 @@ function generer_action_auteur($action, $arg, $redirect="", $mode=false, $att=''
 		"\n\t</div>\n</form>\n";
 }
 
-function redirige_action_auteur($action, $arg, $ret, $gra)
+function redirige_action_auteur($action, $arg, $ret, $gra, $mode=false, $atts='')
 {
-	return generer_action_auteur($action, $arg, generer_url_ecrire($ret, $gra, true, _DIR_RESTREINT_ABS));
+	return generer_action_auteur($action, $arg, generer_url_ecrire($ret, $gra, true, _DIR_RESTREINT_ABS), $mode, $atts);
 }