diff --git a/ecrire/inc/afficher_objets.php b/ecrire/inc/afficher_objets.php
index f0b6dc7d4b9080903cb6e4e3b95bf998adc3e591..a9e1b94e9547d5677ce665630595900f09e1c97a 100644
--- a/ecrire/inc/afficher_objets.php
+++ b/ecrire/inc/afficher_objets.php
@@ -454,102 +454,87 @@ function afficher_articles_trad($titre_table, $requete, $formater, $tmp_var, $ha
 // http://doc.spip.org/@afficher_articles_trad_boucle
 function afficher_articles_trad_boucle($row)
 {
-  	global $lang_objet,  $spip_lang_right, $spip_display;
+  	global $spip_lang_right, $spip_display;
 
-	$lang_dir = lang_dir($lang_objet);
-	$vals = '';
+	$lang_dir = lang_dir($GLOBALS['lang_objet']);
 	$id_article = $row['id_article'];
-	$titre = sinon($row['titre'], _T('ecrire:info_sans_titre'));
+	$titre = $row['titre'];
 	$id_rubrique = $row['id_rubrique'];
-	$date = $row['date'];
 	$statut = $row['statut'];
 	$id_trad = $row['id_trad'];
 	$lang = $row['lang'];
 
-	// La petite puce de changement de statut
-	$puce_statut = charger_fonction('puce_statut', 'inc');
-	$vals[] = $puce_statut($id_article, $statut, $id_rubrique,'article');
-
-	// Le titre (et la langue)
-
-	$langues_art = "";
-	$dates_art = "";
-	$l = "";
+	$dates_art = $langues_art = array();
+	$ligne = "";
 
 	$res_trad = sql_select("id_article, lang, date_modif", "spip_articles", "id_trad = $id_trad AND id_trad > 0");
 
 	while ($row_trad = sql_fetch($res_trad)) {
-
 		$id_article_trad = $row_trad["id_article"];
 		$lang_trad = $row_trad["lang"];
-		$date_trad = $row_trad["date_modif"];
-		$dates_art[$lang_trad] = $date_trad;
+		$date = $row_trad['date_modif'];
+		$dates_art[$lang_trad] = $date;
 		$langues_art[$lang_trad] = $id_article_trad;
 		if ($id_article_trad == $id_trad) $date_ref = $date;
 	}
 
-
 	// faudrait sortir ces invariants de boucle
 
 	if (($GLOBALS['meta']['multi_rubriques'] == 'oui' AND (!isset($GLOBALS['id_rubrique']))) OR $GLOBALS['meta']['multi_articles'] == 'oui') {
-			$afficher_langue = true;
 			$langue_defaut = isset($GLOBALS['langue_rubrique'])
 			  ? $GLOBALS['meta']['langue_site']
 			  : $GLOBALS['langue_rubrique'];
-	}
-
-	$span_lang = false;
+			if ($lang != $langue_defaut)
+				$afficher_langue = " <span class='spip_xx-small' style='color: #666666'  dir='$lang_dir'>(".traduire_nom_langue($lang).")</span>";
+	} else $afficher_langue = '';
 
 	foreach(explode(',', $GLOBALS['meta']['langues_multilingue']) as $k){
-		if ($langues_art[$k]) {
-			if ($langues_art[$k] == $id_trad) {
-				$span_lang = "<a href='" . generer_url_ecrire("articles","id_article=".$langues_art[$k]) . "'><span class='lang_base'>$k</span></a>";
-				$l .= $span_lang;
-			} else {
-				$date = $dates_art[$k];
-				if ($date < $date_ref)
-					$l .= "<a href='" . generer_url_ecrire("articles","id_article=".$langues_art[$k]) . "' class='claire'>$k</a>";
-				else $l .= "<a href='" . generer_url_ecrire("articles","id_article=".$langues_art[$k]) . "' class='foncee'>$k</a>";
-			}
+		if (isset($langues_art[$k]) AND $langues_art[$k]<> $id_trad){
+			$h = generer_url_ecrire("articles", "id_article=".$langues_art[$k]);
+			$style = strtotime($dates_art[$k]) < strtotime($date_ref);
+			$style = $style ? 'claire' : 'foncee';
+			$ligne .= "<a href='$h' class='$style'>$k</a>";
 		}
-#				else $l.= "<span class='creer'>$k</span>";
 	}
 
-	if (!$span_lang)
-		$span_lang = "<a href='" . generer_url_ecrire("articles","id_article=$id_article") . "'><span class='lang_base'>$lang</span></a>";
-
-	$vals[] = "\n<div style='text-align: center;'>$span_lang</div>";
-
-
-	$s.= "\n<div style='float: $spip_lang_right; margin-right: -10px;'>$l</div>";
-
 	if (acces_restreint_rubrique($id_rubrique))
-		$s .= http_img_pack("admin-12.gif", _T('titre_image_administrateur'), "width='12' height='12'", _T('titre_image_admin_article'));
+		$img = http_img_pack("admin-12.gif", _T('titre_image_administrateur'), "width='12' height='12'", _T('titre_image_admin_article'));
+	else $img = '';
 
+	if (!$titre) $titre =  _T('ecrire:info_sans_titre');
 	if ($id_article == $id_trad) $titre = "<b>$titre</b>";
 
-	$titre = typo(supprime_img($titre,''));
+	$h = generer_url_ecrire("articles", "id_article=$id_article");
 
-	if ($afficher_langue AND $lang != $langue_defaut)
-		$titre .= " <span class='spip_xx-small' style='color: #666666'  dir='$lang_dir'>(".traduire_nom_langue($lang).")</span>";
+	$ligne = "\n<div>"
+	  . "<div style='float: $spip_lang_right; margin-right: -10px;'>"
+	  . $ligne
+	  . "</div>"
+	  . $img
+	  . "<a href='$h' title='"
+	  . _T('info_numero_abbreviation')
+	  . $id_article
+	  . "' dir='$lang_dir' style=\"display:block;\">"
+	  . typo(supprime_img($titre,''))
+	  . $afficher_langue
+	  . "</a></div>";
 
-	$s .= "<a href='"
-	  . generer_url_ecrire("articles","id_article=$id_article")
-	  . "' title='" . _T('info_numero_abbreviation'). "$id_article'"
-	  . " dir='$lang_dir' style=\"display:block;\">"
-	  . $titre
-	  . "</a>";
+	if ($spip_display == 4) return "<li>$ligne</li>";
 
-	$vals[] = "\n<div>$s</div>";
+	$span_lang = "<a href='$h'><span class='lang_base'>$lang</span></a>";
 
-	$vals[] = "";
+	// La petite puce de changement de statut
+	$puce_statut = charger_fonction('puce_statut', 'inc');
+	$puce = $puce_statut($id_article, $statut, $id_rubrique,'article');
+	$vals = array($puce,
+		      "\n<div style='text-align: center;'>$span_lang</div>",
+		      $ligne,
+		      "");
 
-	$largeurs = array(11, 24, '', '1');
+	$l6argeurs = array(11, 24, '', '1');
 	$styles = array('', 'arial1', 'arial1', '');
 
-	return ($spip_display != 4)
-	? afficher_liste_display_neq4($largeurs, $vals, $styles)
-	: afficher_liste_display_eq4($largeurs, $vals, $styles);
+	return afficher_liste_display_neq4($largeurs, $vals, $styles);
 }
 
 // http://doc.spip.org/@afficher_auteurs_boucle
diff --git a/ecrire/inc/formater_article.php b/ecrire/inc/formater_article.php
index c206c5c83dc6377c393d22c533e3a6bd16f5142d..58890b35faef725bca60ff5a7ffa714a82e7d187 100644
--- a/ecrire/inc/formater_article.php
+++ b/ecrire/inc/formater_article.php
@@ -48,8 +48,6 @@ function inc_formater_article_dist($row)
 		}
 	} else $logo ='';
 
-	$vals = array();
-
 	$titre = sinon($row['titre'], _T('ecrire:info_sans_titre'));
 	$id_rubrique = $row['id_rubrique'];
 	$date = $row['date'];
@@ -57,9 +55,7 @@ function inc_formater_article_dist($row)
 	$descriptif = $row['descriptif'];
 	$lang_dir = lang_dir(($lang = $row['lang']) ? changer_typo($lang):'');
 
-	$vals[]= $puce_statut($id_article, $statut, $id_rubrique,'article');
-
-	$vals[]= "<div>"
+	$lien  = "<div>"
 	. "<a href='"
 	. generer_url_ecrire("articles","id_article=$id_article")
 	. "'"
@@ -78,26 +74,29 @@ function inc_formater_article_dist($row)
 	. "</a>"
 	. "</div>";
 	
+	if ($spip_display == 4) return "\n<li>$lien</li>\n";
+
+	$puce = $puce_statut($id_article, $statut, $id_rubrique,'article');
+
 	$result = auteurs_article($id_article);
-	$les_auteurs = array();
+	$auteurs = array();
 	while ($r = sql_fetch($result)) {
 		list($s, $mail, $nom, $w, $p) = $formater_auteur($r['id_auteur']);
-		$les_auteurs[]= "$mail&nbsp;$nom";
+		$auteurs[]= "$mail&nbsp;$nom";
 	}
-	$vals[] = join('<br />', $les_auteurs);
+	$auteurs = join('<br />', $auteurs);
 
-	$s = affdate_jourcourt($date);
-	$vals[] = $s ? $s : '&nbsp;';
+	$date = affdate_jourcourt($date);
+	if (!$date) $date = '&nbsp;';
 
-	$vals[]= afficher_numero_edit($id_article, 'id_article', 'article');
+	$num = afficher_numero_edit($id_article, 'id_article', 'article');
 
 	// Afficher le numero (JMB)
-	  $largeurs = array(11, '', 80, 100, 50);
-	  $styles = array('', 'arial2', 'arial1', 'arial1', 'arial1');
+	$largeurs = array(11, '', 80, 100, 50);
+	$styles = array('', 'arial2', 'arial1', 'arial1', 'arial1');
+	$vals = array($puce, $lien, $auteurs, $date, $num);
 
-	return ($spip_display != 4)
-	? afficher_liste_display_neq4($largeurs, $vals, $styles)
-	: afficher_liste_display_eq4($largeurs, $vals, $styles);
+	return afficher_liste_display_neq4($largeurs, $vals, $styles);
 }
 
 ?>
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index ee180c05add6b78c90156cecd6ae77cccd3d1b48..8792eea12558657677261825403f01190d153767 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -363,7 +363,7 @@ function afficher_liste($largeurs, $table, $styles = '') {
 // http://doc.spip.org/@afficher_liste_display_neq4
 function afficher_liste_display_neq4($largeurs, $t, $styles = '') {
 
-	global $spip_lang_left,$browser_name;
+	global $browser_name;
 
 	$evt = (preg_match(",msie,i", $browser_name) ? " onmouseover=\"changeclass(this,'tr_liste_over');\" onmouseout=\"changeclass(this,'tr_liste');\"" :'');
 
@@ -386,18 +386,15 @@ function afficher_liste_display_neq4($largeurs, $t, $styles = '') {
 
 // http://doc.spip.org/@afficher_liste_display_eq4
 function afficher_liste_display_eq4($largeurs, $t, $styles = '') {
-	global $spip_lang_left;
 
-	$res = "\n<li>";
 	reset($largeurs);
-	if ($styles) reset($styles);
 	while (list(, $texte) = each($t)) {
-		$style = $largeur = "";
+		$largeur = "";
 		list(, $largeur) = each($largeurs);
 		if (!$largeur) $res .= $texte." ";
 	}
-	$res .= "</li>\n";
-	return $res;
+
+	return "\n<li>$res</li>\n";
 }
 
 // http://doc.spip.org/@navigation_pagination