diff --git a/ecrire/exec/auteur_infos.php b/ecrire/exec/auteur_infos.php
index daf04c30a630016938072f167637552f5cb610ac..3d535bfc631109cd3f027afa734842088c94d1f7 100644
--- a/ecrire/exec/auteur_infos.php
+++ b/ecrire/exec/auteur_infos.php
@@ -91,6 +91,12 @@ function exec_auteur_infos_dist()
 	  debut_cadre_relief("redacteurs-24.gif", true),
 	  $legender_auteur, $instituer_auteur;
 
+	echo pipeline('affiche_milieu',
+	        array('args' => array(
+        	        'exec'=>'auteur_infos',
+                	'id_auteur'=>$id_auteur),
+		      'data'=>''));
+
 	auteurs_interventions($id_auteur, $auteur['statut']);
 
 	echo fin_cadre_relief(true),
diff --git a/ecrire/exec/auteurs.php b/ecrire/exec/auteurs.php
index c32d3eed01e95eb12804a94d2a3859e283285064..d56663cd7aad39148a59257b3d3bd8d0b38b341b 100644
--- a/ecrire/exec/auteurs.php
+++ b/ecrire/exec/auteurs.php
@@ -17,12 +17,12 @@ include_spip('inc/presentation');
 // http://doc.spip.org/@exec_auteurs_dist
 function exec_auteurs_dist()
 {
-	global  $visiteurs;
 
 	$tri = preg_replace('/\W/', '', _request('tri'));
 	if (!$tri) $tri='nom'; 
+	$statut = preg_replace('/\W/', '', _request('statut'));
 
-	$result = requete_auteurs($tri, $visiteurs);
+	$result = requete_auteurs($tri, $statut);
 	$nombre_auteurs = spip_num_rows($result);
 	$max_par_page = 30;
 	$debut = intval(_request('debut'));
@@ -31,13 +31,13 @@ function exec_auteurs_dist()
 
 	list($auteurs, $lettre)= lettres_d_auteurs($result, $debut, $max_par_page, $tri);
 
-	$res = auteurs_tranches(afficher_n_auteurs($auteurs), $debut, $lettre, $tri, $visiteurs, $max_par_page, $nombre_auteurs);
+	$res = auteurs_tranches(afficher_n_auteurs($auteurs), $debut, $lettre, $tri, $statut, $max_par_page, $nombre_auteurs);
 
 	if (_request('var_ajaxcharset')) ajax_retour($res);
 
 	pipeline('exec_init',array('args'=>array('exec'=>'auteurs'),'data'=>''));
 
-	bandeau_auteurs($auteurs, $debut, $tri, $visiteurs, $max_par_page, $nombre_auteurs);
+	bandeau_auteurs($tri, $statut);
 
 	echo "<div id='auteurs'>", $res, "</div>", fin_page();
 }
@@ -72,7 +72,7 @@ function lettres_d_auteurs($query, $debut, $max_par_page, $tri)
 
 
 // http://doc.spip.org/@bandeau_auteurs
-function bandeau_auteurs($auteurs, $debut, $tri, $visiteurs, $max_par_page, $nombre_auteurs)
+function bandeau_auteurs($tri, $statut)
 {
 	global $options, $spip_lang_right, $connect_id_auteur,   $connect_statut,   $connect_toutes_rubriques;
 
@@ -81,24 +81,22 @@ function bandeau_auteurs($auteurs, $debut, $tri, $visiteurs, $max_par_page, $nom
 	if ($tri=='nombre') $s = _T('info_par_nombre_articles');
 	$s = ' ('._T('info_par_nombre_article').')';
 
-	if ($visiteurs == "oui") {
+	if ($statut == '6forum') {
 		debut_page(_T('titre_page_auteurs'),"auteurs","redacteurs");
-		$visiteurs = '&visiteurs=oui';
 	} else {
 		debut_page(_T('info_auteurs_par_tri', array('partri' => $s)),"auteurs","redacteurs");
-	$visiteurs = "";
 	}
 	debut_gauche();
 
 	debut_boite_info();
-	if ($visiteurs)
+	if ($statut == '6forum') 
 		echo "\n<p class='arial1'>"._T('info_gauche_visiteurs_enregistres'), '</p>';
-	else {
+	else 
 		echo "\n<p class='arial1'>"._T('info_gauche_auteurs'), '</p>';
 
 	if ($connect_statut == '0minirezo')
 		echo "\n<br />". _T('info_gauche_auteurs_exterieurs');
-	}
+
 	fin_boite_info();
 
 
@@ -108,14 +106,14 @@ function bandeau_auteurs($auteurs, $debut, $tri, $visiteurs, $max_par_page, $nom
 			$res = icone_horizontale(_T('icone_creer_nouvel_auteur'), generer_url_ecrire("auteur_infos"), "auteur-24.gif", "creer.gif", false);
 		else $res = '';
 
-		$res .= icone_horizontale(_T('icone_informations_personnelles'), generer_url_ecrire("auteurs_edit","id_auteur=$connect_id_auteur"), "fiche-perso-24.gif","rien.gif", false);
+		$res .= icone_horizontale(_T('icone_informations_personnelles'), generer_url_ecrire("auteur_infos","id_auteur=$connect_id_auteur&initial=-1"), "fiche-perso-24.gif","rien.gif", false);
 
 		$n = spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs WHERE statut='6forum' LIMIT 1"));
 		if ($n) {
-			if ($visiteurs)
-				$res .= icone_horizontale (_T('icone_afficher_auteurs'), generer_url_ecrire("auteurs",""), "auteur-24.gif", "", false);
+			if ($statut == '6forum')
+				$res .= icone_horizontale (_T('icone_afficher_auteurs'), generer_url_ecrire("auteurs"), "auteur-24.gif", "", false);
 			else
-				$res .= icone_horizontale (_T('icone_afficher_visiteurs'), generer_url_ecrire("auteurs","visiteurs=oui"), "auteur-24.gif", "", false);
+				$res .= icone_horizontale (_T('icone_afficher_visiteurs'), generer_url_ecrire("auteurs","statut=6forum"), "auteur-24.gif", "", false);
 		}
 		echo bloc_des_raccourcis($res);
 	}
@@ -125,7 +123,7 @@ function bandeau_auteurs($auteurs, $debut, $tri, $visiteurs, $max_par_page, $nom
 	debut_droite();
 
 	echo "\n<br />";
-	if ($visiteurs)
+	if ($statut == '6forum') 
 		gros_titre(_T('info_visiteurs'));
 	else
 		gros_titre(_T('info_auteurs'));
@@ -133,7 +131,7 @@ function bandeau_auteurs($auteurs, $debut, $tri, $visiteurs, $max_par_page, $nom
 }
 
 // http://doc.spip.org/@auteurs_tranches
-function auteurs_tranches($auteurs, $debut, $lettre, $tri, $visiteurs, $max_par_page, $nombre_auteurs)
+function auteurs_tranches($auteurs, $debut, $lettre, $tri, $statut, $max_par_page, $nombre_auteurs)
 {
 	global $options, $spip_lang_right;
 
@@ -147,29 +145,27 @@ function auteurs_tranches($auteurs, $debut, $lettre, $tri, $visiteurs, $max_par_
 	  $res .= auteurs_href(http_img_pack('admin-12.gif', $t, "border='0'"),'tri=statut', " title=\"$t\"");
 	}
 
-	$res .= "</td><td>";
+	$res .= "</td><td width='20'></td><td colspan='2'>";
 
 	if ($tri == '' OR $tri=='nom')
 		$res .= '<b>'._T('info_nom').'</b>';
 	else
 		$res .= auteurs_href(_T('info_nom'), "tri=nom", " title='"._T('lien_trier_nom'). "'");
 
-	if ($options == 'avancees')
-	 	$res .= "</td><td colspan='2'>"._T('info_contact');
 
 	$res .= "</td><td>";
 
-	if (!$visiteurs) {
+	if ($statut != '6forum') {
 		if ($tri=='nombre')
 			$res .= '<b>'._T('info_articles').'</b>';
 		else
 			$res .= auteurs_href(_T('info_articles_2'), "tri=nombre", " title=\""._T('lien_trier_nombre_articles'). '"');
-	} else $visiteurs = '&visiteurs=oui';
+	}
 
 	$res .= "</td></tr>\n";
 
 	if ($nombre_auteurs > $max_par_page) {
-		$res .= "\n<tr bgcolor='white'><td class='arial1' colspan='".($options == 'avancees' ? 5 : 3)."'>";
+		$res .= "\n<tr bgcolor='white'><td class='arial1' colspan='5'>";
 
 		for ($j=0; $j < $nombre_auteurs; $j+=$max_par_page) {
 			if ($j > 0) 	$res .= " | ";
@@ -177,9 +173,9 @@ function auteurs_tranches($auteurs, $debut, $lettre, $tri, $visiteurs, $max_par_
 			if ($j == $debut)
 				$res .= "<b>$j</b>";
 			else if ($j > 0)
-				$res .= auteurs_href($j, "tri=$tri$visiteurs&debut=$j");
+				$res .= auteurs_href($j, "tri=$tri&statut=$statut&debut=$j");
 			else
-				$res .= auteurs_href('0', "tri=$tri$visiteurs");
+				$res .= auteurs_href('0', "tri=$tri&statut=$statut");
 			if ($debut > $j  AND $debut < $j+$max_par_page){
 				$res .= " | <b>$debut</b>";
 			}
@@ -192,7 +188,7 @@ function auteurs_tranches($auteurs, $debut, $lettre, $tri, $visiteurs, $max_par_
 				if ($val == $debut)
 					$res .= "<b>$key</b>\n";
 				else
-					$res .= auteurs_href($key, "tri=$tri$visiteurs&debut=$val") . "\n";
+					$res .= auteurs_href($key, "tri=$tri&statut=$statut&debut=$val") . "\n";
 			}
 			$res .= "</td></tr>\n";
 		}
@@ -206,11 +202,11 @@ function auteurs_tranches($auteurs, $debut, $lettre, $tri, $visiteurs, $max_par_
 
 		if ($debut > 0) {
 			$debut_prec = max($debut - $max_par_page, 0);
-			$nav .= auteurs_href('&lt;&lt;&lt;',"tri=$tri&debut=$debut_prec$visiteurs");
+			$nav .= auteurs_href('&lt;&lt;&lt;',"tri=$tri&debut=$debut_prec&statut=$statut");
 		}
 		$nav .= "</td><td style='text-align: $spip_lang_right'>";
 		if ($debut_suivant < $nombre_auteurs) {
-			$nav .= auteurs_href('&gt;&gt;&gt;',"tri=$tri&debut=$debut_suivant$visiteurs");
+			$nav .= auteurs_href('&gt;&gt;&gt;',"tri=$tri&debut=$debut_suivant&statut=$statut");
 		}
 		$nav .= "</td></tr></table>\n";
 	}
@@ -236,7 +232,7 @@ function auteurs_href($clic, $args='', $att='')
 }
 
 // http://doc.spip.org/@requete_auteurs
-function requete_auteurs($tri, $visiteurs)
+function requete_auteurs($tri, $statut)
 {
   global $connect_statut, $spip_lang, $connect_id_auteur;
 
@@ -248,8 +244,8 @@ function requete_auteurs($tri, $visiteurs)
 // sauf les admins, toujours visibles.
 // limiter les statuts affiches
 if ($connect_statut == '0minirezo') {
-	if ($visiteurs == "oui") {
-		$sql_visible = "aut.statut IN ('6forum','5poubelle')";
+	if ($statut) {
+		$sql_visible = "aut.statut IN ('$statut')";
 		$tri = 'nom';
 	} else {
 		$sql_visible = "aut.statut IN ('0minirezo','1comite','5poubelle')";
@@ -271,7 +267,7 @@ case 'nombre':
 	break;
 
 case 'statut':
-	$sql_order = ' statut, login = "", unom';
+	$sql_order = ' statut, unom';
 	break;
 
 case 'nom':
@@ -286,7 +282,7 @@ default:
 // La requete de base est tres sympa
 //
 
- $row = spip_query("SELECT							aut.id_auteur AS id_auteur,							aut.statut AS statut,								aut.login AS login,								aut.nom AS nom,								aut.email AS email,								aut.source AS source,								aut.pass AS pass,								aut.url_site AS url_site,							aut.messagerie AS messagerie,							UPPER(aut.nom) AS unom,							count(lien.id_article) as compteur						$sql_sel									FROM spip_auteurs as aut							LEFT JOIN spip_auteurs_articles AS lien ON aut.id_auteur=lien.id_auteur	LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)		WHERE	$sql_visible								GROUP BY aut.id_auteur	 ORDER BY		$sql_order");
+ $row = spip_query("SELECT							aut.id_auteur AS id_auteur,							aut.statut AS statut,								aut.nom AS nom,								UPPER(aut.nom) AS unom,							count(lien.id_article) as compteur						$sql_sel									FROM spip_auteurs as aut							LEFT JOIN spip_auteurs_articles AS lien ON aut.id_auteur=lien.id_auteur	LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)		WHERE	$sql_visible								GROUP BY aut.id_auteur	 ORDER BY		$sql_order");
  return $row;
 }
 
@@ -298,48 +294,22 @@ function afficher_n_auteurs($auteurs) {
 	$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
 	foreach ($auteurs as $row) {
 
-		$nom = typo($row['nom']);
-
+		list($s, $mail, $nom, $w, $p) = $bouton_auteur($row['id_auteur']);
 		$res .= "\n<tr style='background-color: #eeeeee;'>"
 		. "\n<td style='border-top: 1px solid #cccccc;'>"
-		. bonhomme_statut($row)
+		. $s
+		. "</td><td class='arial1' style='border-top: 1px solid #cccccc;'>"
+		. $mail
 		. "</td><td class='verdana11' style='border-top: 1px solid #cccccc;'>"
-		. "<a href='"
-		. generer_url_ecrire('auteurs_edit',"id_auteur=".$row['id_auteur'])
-		."'>"
-		. ($nom ? $nom : ("<span style='color: red'>" . _T('texte_vide') . '</span>'))
-		. '</a>';
-
-		if (isset($row['restreint']) AND $row['restreint'])
-			$res .= " &nbsp;<small>"._T('statut_admin_restreint')."</small>";
-
-
-	// contact
-		if ($options == 'avancees') {
-			$res .= "</td><td class='arial1' style='border-top: 1px solid #cccccc;'>";
-			$res .= $bouton_auteur($row['id_auteur'])."&nbsp;";
-			if ($connect_statut=="0minirezo")
-				if (strlen($row['email'])>3)
-					$res .= "<a href='mailto:".$row['email']."'>"._T('lien_email')."</a>";
-				else
-					$res .= "&nbsp;";
-
-			if (strlen($row['url_site'])>3)
-				$res .= "</td><td class='arial1' style='border-top: 1px solid #cccccc;'><a href='".$row['url_site']."'>"._T('lien_site')."</a>";
-			else
-				$res .= "</td><td style='border-top: 1px solid #cccccc;'>&nbsp;";
-		}
-
-	// nombre d'articles
-		$res .= "</td><td class='arial1' style='border-top: 1px solid #cccccc;'>";
-		if ($row['compteur'] > 1)
-			$res .= $row['compteur']."&nbsp;"._T('info_article_2');
-		else if($row['compteur'] == 1)
-			$res .= "1&nbsp;"._T('info_article');
-		else
-			$res .= "&nbsp;";
-
-		$res .= "</td></tr>\n";
+		. $nom
+		. ((isset($row['restreint']) AND $row['restreint'])
+		   ? (" &nbsp;<small>"._T('statut_admin_restreint')."</small>")
+		   : '')
+		 ."</td><td class='arial1' style='border-top: 1px solid #cccccc;'>"
+		 . $w
+		 . "</td><td class='arial1' style='border-top: 1px solid #cccccc;'>"
+		 . $p
+		.  "</td></tr>\n";
 	}
 	return $res;
 }
diff --git a/ecrire/exec/forum_envoi.php b/ecrire/exec/forum_envoi.php
index 3442c878ffde1e86efba7f9d8f6522e8b95a3e94..8594988070ddbe9e4b3be7c37f85d3495a2f582d 100644
--- a/ecrire/exec/forum_envoi.php
+++ b/ecrire/exec/forum_envoi.php
@@ -90,14 +90,13 @@ if ($id_parent) {
 
     if ($titre_parent) {
 	debut_cadre_forum("forum-interne-24.gif", false, "", typo($titre_parent));
-	echo "<span class='arial2'>$date_heure_parent</span>";
-	echo " ".typo($auteur_parent);
+	echo "<span class='arial2'>$date_heure_parent</span> ";
 
 	if ($id_auteur_parent) {
 		$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
-		$bouton = $bouton_auteur($id_auteur_parent);
-		if ($bouton) echo "&nbsp;".$bouton;
-	}
+		list($s, $mail, $nom, $w, $p) = $bouton_auteur($id_auteur_parent);
+		echo "$mail&nbsp;$nom";
+	} else 	echo " ", typo($auteur_parent);
 
 	echo justifier(propre($texte_parent));
 
diff --git a/ecrire/inc/bouton_auteur.php b/ecrire/inc/bouton_auteur.php
index c6179efec9c6a4c24c37699f2fac023ac7a3b1b9..119b6547e4e6843fe4ea90e5d3f49a55cebb3bc2 100644
--- a/ecrire/inc/bouton_auteur.php
+++ b/ecrire/inc/bouton_auteur.php
@@ -13,31 +13,61 @@
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
 //
-// affiche un bouton appelant le script de messagerie interne
-//
+// Construit un tableau des 5 informations principales sur un auteur,
+// avec des liens vers les scripts associes:
+// 1. l'icone du statut, avec lien vers la page de tous ceux ayant ce statut
+// 2. le nom, avec lien vers la page complete des informations
+// 3. le mot "mail" avec un lien mailto ou a defaut la messagerie de Spip
+// 4. le nom du site perso avec le lien vers lui
+// 5. le nombre d'articles publies
 
 function inc_bouton_auteur_dist($id_auteur) {
 
 	global $connect_id_auteur, $spip_lang_rtl;
 
-	if ($id_auteur == $connect_id_auteur)
-		return '';
+	$id_auteur = intval($id_auteur);
+
+	$row = spip_fetch_array(spip_query("SELECT *, (en_ligne<DATE_SUB(NOW(),INTERVAL 15 DAY)) AS parti FROM spip_auteurs where id_auteur=$id_auteur"));
+
+	$vals = array();
 
-	$login_req = spip_query("SELECT login, messagerie FROM spip_auteurs where id_auteur=" . intval($id_auteur) ." AND en_ligne>DATE_SUB(NOW(),INTERVAL 15 DAY)");
-	$row = spip_fetch_array($login_req);
+	$href = generer_url_ecrire("auteurs","statut=" . $row['statut']);
+	$vals[] = "<a href='$href'>" . bonhomme_statut($row) . '</a>';
 
-	if (($row['login'] == "") OR ($row['messagerie'] == "non")) {
-			return '';
+	if (($id_auteur == $connect_id_auteur) OR $row['parti'])
+		$vals[]= '&nbsp;';
+	else {
+		if ($row['email']) $href='mailto:' . $row['email'];
+		else $href = generer_url_ecrire("message_edit","new=oui&dest=$id_auteur&type=normal");
+
+		$vals[]= "<a href='$href' title=\""
+		  . _T('email')
+		  . '">'
+		  . http_img_pack("m_envoi$spip_lang_rtl.gif", "m&gt;", "width='14' height='7'", _T('info_envoyer_message_prive'))
+		  . '</a>';
 	}
 
-	$title = _T('info_envoyer_message_prive');
-		
-	return "<a href='"
-	. generer_url_ecrire("message_edit","new=oui&dest=$id_auteur&type=normal")
-	. "' title=\""
-	. $title
-	. "\">"
-	. http_img_pack("m_envoi$spip_lang_rtl.gif", "m&gt;", "width='14' height='7'", $title)
-	. "</a>";
+	if ($bio_auteur = attribut_html(propre(couper($row["bio"], 100))))
+		$bio_auteur = " title=\"$bio_auteur\"";
+
+	if (!$nom = typo($row['nom']))
+		$nom = "<span style='color: red'>" . _T('texte_vide') . '</span>';
+
+	$vals[] = "<a href='"
+	. generer_url_ecrire('auteur_infos', "id_auteur=$id_auteur&initial=-1")
+	. "' $bio_auteur>$nom</a>";
+
+	if ($url_site_auteur = $row["url_site"]) $vals[] =  "<a href='$url_site_auteur'>"._T('info_site_min')."</a>";
+	else $vals[] =  "&nbsp;";
+
+	$cpt = spip_fetch_array(spip_query("SELECT COUNT(articles.id_article) AS n FROM spip_auteurs_articles AS lien, spip_articles AS articles WHERE lien.id_auteur=$id_auteur AND articles.id_article=lien.id_article AND articles.statut IN " . ($connect_statut == "0minirezo" ? "('prepa', 'prop', 'publie', 'refuse')" : "('prop', 'publie')") . " GROUP BY lien.id_auteur"));
+
+	$nombre_articles = intval($cpt['n']);
+
+	if ($nombre_articles > 1) $vals[] =  $nombre_articles.' '._T('info_article_2');
+	elseif ($nombre_articles == 1) $vals[] =  _T('info_1_article');
+	else $vals[] =  "&nbsp;";
+
+	return $vals;
 }
 ?>
diff --git a/ecrire/inc/editer_auteurs.php b/ecrire/inc/editer_auteurs.php
index 5f5ee42e9502c365a524b219bce73f794ed85eb0..7711b98ce249822a7c6ce90db2b314add0222c7f 100644
--- a/ecrire/inc/editer_auteurs.php
+++ b/ecrire/inc/editer_auteurs.php
@@ -22,7 +22,7 @@ function inc_editer_auteurs_dist($id_article, $flag, $cherche_auteur, $ids)
 {
 	global $options;
 
-	$les_auteurs = join(',', determiner_auteurs_article($id_article));
+	$les_auteurs = determiner_auteurs_article($id_article);
 	if ($flag AND $options == 'avancees') {
 		$futurs = ajouter_auteurs_articles($id_article, $les_auteurs);
 	} else $futurs = '';
@@ -174,49 +174,18 @@ function afficher_auteurs_articles($id_article, $flag_editable, $les_auteurs)
 
 	$table = array();
 
-	$result = spip_query("SELECT * FROM spip_auteurs AS A WHERE A.id_auteur IN ($les_auteurs) ORDER BY A.nom");
-
 	$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
-	while ($row = spip_fetch_array($result)) {
-			$vals = array();
-			$id_auteur = $row["id_auteur"];
-			$nom_auteur = $row["nom"];
-			$email_auteur = $row["email"];
-			if ($bio_auteur = attribut_html(propre(couper($row["bio"], 100))))
-			  $bio_auteur = " title=\"$bio_auteur\"";
-			$url_site_auteur = $row["url_site"];
-
-			$vals[] = bonhomme_statut($row);
-
-			$vals[] = "<a href='" . generer_url_ecrire('auteurs_edit', "id_auteur=$id_auteur") . "' $bio_auteur>".typo($nom_auteur)."</a>";
-
-			$vals[] = $bouton_auteur($id_auteur);
-		
-			if ($email_auteur) $vals[] =  "<a href='mailto:$email_auteur'>"._T('email')."</a>";
-			else $vals[] =  "&nbsp;";
+	foreach($les_auteurs as $id_auteur) {
+		$vals = $bouton_auteur($id_auteur);
 
-			if ($url_site_auteur) $vals[] =  "<a href='$url_site_auteur'>"._T('info_site_min')."</a>";
-			else $vals[] =  "&nbsp;";
-
-			$cpt = spip_fetch_array(spip_query("SELECT COUNT(articles.id_article) AS n FROM spip_auteurs_articles AS lien, spip_articles AS articles WHERE lien.id_auteur=$id_auteur AND articles.id_article=lien.id_article AND articles.statut IN " . ($connect_statut == "0minirezo" ? "('prepa', 'prop', 'publie', 'refuse')" : "('prop', 'publie')") . " GROUP BY lien.id_auteur"));
-
-			$nombre_articles = intval($cpt['n']);
-
-			if ($nombre_articles > 1) $vals[] =  $nombre_articles.' '._T('info_article_2');
-			elseif ($nombre_articles == 1) $vals[] =  _T('info_1_article');
-			else $vals[] =  "&nbsp;";
-
-			if ($flag_editable AND ($connect_id_auteur != $id_auteur OR $connect_statut == '0minirezo') AND $options == 'avancees') {
-				$vals[] =  ajax_action_auteur('editer_auteurs', "$id_article,-$id_auteur",'articles', "id_article=$id_article", array(_T('lien_retirer_auteur')."&nbsp;". http_img_pack('croix-rouge.gif', "X", "width='7' height='7' border='0' align='middle'")));
-			} else {
-			  $vals[] = "";
-			}
-		
-			$table[] = $vals;
+		if ($flag_editable AND ($connect_id_auteur != $id_auteur OR $connect_statut == '0minirezo') AND $options == 'avancees') {
+			$vals[] =  ajax_action_auteur('editer_auteurs', "$id_article,-$id_auteur",'articles', "id_article=$id_article", array(_T('lien_retirer_auteur')."&nbsp;". http_img_pack('croix-rouge.gif', "X", "width='7' height='7' border='0' align='middle'")));
+		} else  $vals[] = "";
+		$table[] = $vals;
 	}
 	
-	$largeurs = array('14', '', '', '', '', '', '');
-	$styles = array('arial11', 'arial2', 'arial11', 'arial11', 'arial11', 'arial11', 'arial1');
+	$largeurs = array('14', '', '', '', '', '');
+	$styles = array('arial11', 'arial2', 'arial11', 'arial11', 'arial11', 'arial1');
 
 	return "<div class='liste'><table width='100%' cellpadding='3' cellspacing='0' border='0' background=''>"
 	. afficher_liste($largeurs, $table, $styles)
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index 70e0ad81bef40f0794ad19e377b4a747de40f075..3ef10440f1a6304f097dd53edd40c319e80e315c 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -861,27 +861,6 @@ function afficher_articles_boucle($row, &$tous_id, $afficher_auteurs, $afficher_
 	if ($descriptif) $descriptif = ' title="'.attribut_html(typo($descriptif)).'"';
 	$petition = $row['petition'];
 
-	if ($afficher_auteurs) {
-		$les_auteurs = "";
-		$result_auteurs = spip_query("SELECT auteurs.id_auteur, nom,  bio FROM spip_auteurs AS auteurs, spip_auteurs_articles AS lien WHERE lien.id_article=$id_article AND auteurs.id_auteur=lien.id_auteur ORDER BY nom");
-
-		$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
-		while ($row = spip_fetch_array($result_auteurs)) {
-			$id_auteur = $row['id_auteur'];
-			$nom_auteur = typo($row['nom']);
-
-			if ($bio = texte_backend(supprimer_tags(couper($row['bio'],50))))
-				$bio = " title=\"$bio\"";
-
-
-			$les_auteurs .= ", <a href='" . generer_url_ecrire("auteur_infos","id_auteur=$id_auteur&initial=-1") . "'$bio>$nom_auteur</a>";
-			if ($bouton = $bouton_auteur($id_auteur)) {
-				$les_auteurs .= "&nbsp;".$bouton;
-			}
-		}
-		$les_auteurs = substr($les_auteurs, 2);
-	}
-
 	// La petite puce de changement de statut
 	$vals[] = puce_statut_article($id_article, $statut, $id_rubrique);
 
@@ -913,8 +892,18 @@ function afficher_articles_boucle($row, &$tous_id, $afficher_auteurs, $afficher_
 	
 	$vals[] = $s;
 
-	// Les auteurs
-	if ($afficher_auteurs) $vals[] = $les_auteurs;
+
+	if ($afficher_auteurs) {
+		$les_auteurs = "";
+		$result_auteurs = auteurs_article($id_article);
+
+		$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
+		while ($row = spip_fetch_array($result_auteurs)) {
+			list($s, $mail, $nom, $w, $p) = $bouton_auteur($row['id_auteur']);
+			$les_auteurs .= "$mail&nbsp;$nom, ";
+		}
+		$vals[] = substr($les_auteurs, 0, -2);
+	}
 
 	// La date
 	$vals[] = affdate_jourcourt($date);
@@ -1347,7 +1336,7 @@ function afficher_auteurs ($titre_table, $requete) {
 			echo "<p><table width='100%' cellpadding='0' cellspacing='0' border='0' background=''>";
 			echo "<tr><td width='100%' background=''>";
 			echo "<table width='100%' cellpadding='3' cellspacing='0' border='0'>";
-			echo "<tr bgcolor='#333333'><td width='100%' colspan='2'><font face='Verdana,Arial,Sans,sans-serif' size=3 color='#FFFFFF'>";
+			echo "<tr bgcolor='#333333'><td width='100%' colspan='5'><font face='Verdana,Arial,Sans,sans-serif' size=3 color='#FFFFFF'>";
 			echo "<b>$titre_table</b></font></td></tr>";
 		}
 	else {
@@ -1360,38 +1349,22 @@ function afficher_auteurs ($titre_table, $requete) {
 
 	$table = array();
 	while ($row = spip_fetch_array($result)) {
-		$table[]= affiche_auteur_boucle($row, $tous_id);
+		$tous_id[] = $row['id_auteur'];
+		$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
+		$table[]= $bouton_auteur($row['id_auteur']);
 	}
 	spip_free_result($result);
-	$largeurs = array('');
-	$styles = array('arial2');
+	$largeurs = array(20, 20, 200, 20, 50);
+	$styles = array('','','arial2','arial1','arial1');
 	echo afficher_liste($largeurs, $table, $styles);
 
-	if ($titre_table) echo "</TABLE></TD></TR>";
-	echo "</TABLE>";
+	if ($titre_table) echo "</table></td></tr>";
+	echo "</table>";
 	fin_cadre_relief();
 
 	return $tous_id;
 }
 
-// http://doc.spip.org/@affiche_auteur_boucle
-function affiche_auteur_boucle($row, &$tous_id)
-{
-	$vals = '';
-
-	$id_auteur = $row['id_auteur'];
-	$tous_id[] = $id_auteur;
-	$nom = $row['nom'];
-
-	$s = bonhomme_statut($row);
-	$s .= "<a href='" . generer_url_ecrire("auteurs_edit","id_auteur=$id_auteur") . "'>";
-	$s .= typo($nom);
-	$s .= "</a>";
-	$vals[] = $s;
-
-	return $vals;
-}
-
 //
 // Afficher les forums
 //
@@ -1494,19 +1467,14 @@ function afficher_forum_thread($row, $controle_id_article, $compteur_forum, $nb_
 		$res .= "<div style='border: 1px solid yellow; padding: 5px;'>";
 	}
 		
-	$res .= "<span class='arial2'>". date_interface($date_heure) . "</span> ";
-
-	if ($id_auteur)
-		$res .= "<a href='" . generer_url_ecrire("auteurs_edit","id_auteur=$id_auteur") . "'>".typo($auteur)."</a>";
-	else if ($email_auteur)
-		$res .= "<a href='mailto:$email_auteur'>".typo($auteur)."</a>";
-	else	$res .= typo($auteur);
+	$res .= "<span class='arial2'>". date_interface($date_heure) . "</span>&nbsp;&nbsp;";
 
 	if ($id_auteur) {
 		$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
-		$bouton = $bouton_auteur($id_auteur);
-		if ($bouton) $res .= "&nbsp;".$bouton;
-	}
+		$res .= join(' ',$bouton_auteur($id_auteur));
+	} else if ($email_auteur)
+		$res .= "<a href='mailto:$email_auteur'>".typo($auteur)."</a>";
+	else	$res .= typo($auteur);
 
 	// boutons de moderation
 	if ($controle_id_article)
@@ -2270,7 +2238,7 @@ if (true /*$bandeau_colore*/) {
 
 		if (!($connect_toutes_rubriques)) {
 			echo http_img_pack("rien.gif", " ", "width='10'");
-			echo "<a href='" . generer_url_ecrire("auteurs_edit","id_auteur=$connect_id_auteur") . "' class='icone26' onmouseover=\"changestyle('bandeauinfoperso','visibility','visible');\">" .
+			echo "<a href='" . generer_url_ecrire("auteur_infos","id_auteur=$connect_id_auteur&initial=-1") . "' class='icone26' onmouseover=\"changestyle('bandeauinfoperso','visibility','visible');\">" .
 			  http_img_pack("fiche-perso.png", "", "onmouseover=\"changestyle('bandeauvide','visibility', 'visible');\"");
 			echo "</a>";
 		}
@@ -2387,17 +2355,16 @@ function auteurs_recemment_connectes()
 {	
 	global $connect_id_auteur;
 	$res = '';
-	$result_auteurs = spip_query("SELECT id_auteur, nom FROM spip_auteurs WHERE id_auteur!=$connect_id_auteur AND imessage!='non' AND en_ligne>DATE_SUB(NOW(),INTERVAL 15 MINUTE) AND statut IN ('0minirezo','1comite')");
+	$result_auteurs = spip_query("SELECT id_auteur FROM spip_auteurs WHERE id_auteur!=$connect_id_auteur AND en_ligne>DATE_SUB(NOW(),INTERVAL 15 MINUTE) AND statut IN ('0minirezo','1comite')");
 
-	$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
 	if (spip_num_rows($result_auteurs)) {
-
-		$res = "<b>"._T('info_en_ligne')."</b>";
+		$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
+		$res = "<b>"._T('info_en_ligne'). "&nbsp;</b>";
 		while ($row = spip_fetch_array($result_auteurs)) {
-			$id_auteur = $row["id_auteur"];
-			$nom_auteur = typo($row["nom"]);
-			$res .= " &nbsp; ".bouton_auteur($id_auteur)."&nbsp;<a href='" . generer_url_ecrire("auteurs_edit","id_auteur=$id_auteur") . "' style='color: #666666;'>$nom_auteur</a>";
+			list($s, $mail, $nom, $w, $p) = $bouton_auteur($row['id_auteur']);
+			$res .= "$mail&nbsp;$nom, ";
 		}
+		$res = substr($res,0,-2);
 	}
 
 	return "<div class='messages' style='color: #666666;'>$res</div>";
diff --git a/ecrire/inc/vieilles_defs.php b/ecrire/inc/vieilles_defs.php
index fc4483bb9859b64ba09ee5f6fe87127a1ec4fed7..5ed588020e5563d9d334af503ccaffa567e9de90 100644
--- a/ecrire/inc/vieilles_defs.php
+++ b/ecrire/inc/vieilles_defs.php
@@ -75,4 +75,22 @@ function afficher_script_layer(){echo $GLOBALS['browser_layer'];}
 // http://doc.spip.org/@test_layer
 function test_layer(){return $GLOBALS['browser_layer'];}
 
+
+// http://doc.spip.org/@affiche_auteur_boucle
+function affiche_auteur_boucle($row, &$tous_id)
+{
+	$vals = '';
+
+	$id_auteur = $row['id_auteur'];
+	
+	$nom = $row['nom'];
+
+	$s = bonhomme_statut($row);
+	$s .= "<a href='" . generer_url_ecrire("auteurs_edit","id_auteur=$id_auteur") . "'>";
+	$s .= typo($nom);
+	$s .= "</a>";
+	$vals[] = $s;
+
+	return $vals;
+}
 ?>