diff --git a/ecrire/exec/auteurs.php b/ecrire/exec/auteurs.php
index ba87c481b00c340bc49ebfb4a3cc86c5751a0579..c32d3eed01e95eb12804a94d2a3859e283285064 100644
--- a/ecrire/exec/auteurs.php
+++ b/ecrire/exec/auteurs.php
@@ -292,9 +292,10 @@ default:
 
 // http://doc.spip.org/@afficher_n_auteurs
 function afficher_n_auteurs($auteurs) {
-	global $connect_statut, $options, $messagerie;
+	global $connect_statut, $options;
 
 	$res = '';
+	$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
 	foreach ($auteurs as $row) {
 
 		$nom = typo($row['nom']);
@@ -316,9 +317,7 @@ function afficher_n_auteurs($auteurs) {
 	// contact
 		if ($options == 'avancees') {
 			$res .= "</td><td class='arial1' style='border-top: 1px solid #cccccc;'>";
-			if ($row['messagerie'] != 'non' AND $row['login']
-			    AND $messagerie != "non")
-				$res .= bouton_imessage($row['id_auteur'],"force")."&nbsp;";
+			$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>";
diff --git a/ecrire/exec/forum_envoi.php b/ecrire/exec/forum_envoi.php
index d94ecfe889408b57cbae382eb437753586999435..3442c878ffde1e86efba7f9d8f6522e8b95a3e94 100644
--- a/ecrire/exec/forum_envoi.php
+++ b/ecrire/exec/forum_envoi.php
@@ -94,7 +94,8 @@ if ($id_parent) {
 	echo " ".typo($auteur_parent);
 
 	if ($id_auteur_parent) {
-		$bouton = bouton_imessage($id_auteur_parent, $row);
+		$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
+		$bouton = $bouton_auteur($id_auteur_parent);
 		if ($bouton) echo "&nbsp;".$bouton;
 	}
 
diff --git a/ecrire/inc/editer_auteurs.php b/ecrire/inc/editer_auteurs.php
index 798c1fa1aaa1cf5e171901e420f5aa6e2714a72d..5f5ee42e9502c365a524b219bce73f794ed85eb0 100644
--- a/ecrire/inc/editer_auteurs.php
+++ b/ecrire/inc/editer_auteurs.php
@@ -176,6 +176,7 @@ function afficher_auteurs_articles($id_article, $flag_editable, $les_auteurs)
 
 	$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"];
@@ -184,14 +185,12 @@ function afficher_auteurs_articles($id_article, $flag_editable, $les_auteurs)
 			if ($bio_auteur = attribut_html(propre(couper($row["bio"], 100))))
 			  $bio_auteur = " title=\"$bio_auteur\"";
 			$url_site_auteur = $row["url_site"];
-			$statut_auteur = $row["statut"];
-			if ($row['messagerie'] == 'non' OR $row['login'] == '') $messagerie = 'non';
 
 			$vals[] = bonhomme_statut($row);
 
 			$vals[] = "<a href='" . generer_url_ecrire('auteurs_edit', "id_auteur=$id_auteur") . "' $bio_auteur>".typo($nom_auteur)."</a>";
 
-			$vals[] = bouton_imessage($id_auteur);
+			$vals[] = $bouton_auteur($id_auteur);
 		
 			if ($email_auteur) $vals[] =  "<a href='mailto:$email_auteur'>"._T('email')."</a>";
 			else $vals[] =  "&nbsp;";
diff --git a/ecrire/inc/informer_auteur.php b/ecrire/inc/informer_auteur.php
index eed59741f74032d527060080d6e4666acdae4e21..6f31dd6ac38c2672d1383d32fd1c2933af4c52a6 100644
--- a/ecrire/inc/informer_auteur.php
+++ b/ecrire/inc/informer_auteur.php
@@ -27,20 +27,28 @@ function inc_informer_auteur_dist($id)
 			$bio = propre($row["bio"]);
 			$mail = $row['email'];
 			if (!email_valide($mail))
-				$mail = "<span style='color:red'>"
+				$nom .= "(<span style='color:red'>"
 				. _T('info_email_invalide')
-				. '</span>';
-			else $mail = "<a href='mailto:$mail'>"
+				. '</span>)';
+			else $nom = "<a href='mailto:$mail' title=\""
 			  . _T('info_ecire_message_prive')
+			  . '">'
+			  . $nom
 			  . "</a>";
-			$mail = "<br /> ($mail)<br />";
+
+			$nb = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_auteurs_articles WHERE id_auteur=$id"));
+			if ($nb['n'] > 1)
+			$nb = $nb['n']."&nbsp;"._T('info_article_2');
+			else if($nb['n'] == 1)
+			$nb = "1&nbsp;"._T('info_article');
+			else $nb = "&nbsp;";
 	} else {
 			$nom = "<span style='color:red'>"
 			. _T('texte_vide')
 			. '</span>';
-			$bio = $mail = '';
+			$bio = $mail = $nb = '';
 	}
-
+			spip_log("nb $nb $bio");
 	$res = '';
 	if ($spip_display != 1 AND $spip_display!=4 AND $GLOBALS['meta']['image_process'] != "non") {
 		$logo_f = charger_fonction('chercher_logo', 'inc');
@@ -54,13 +62,15 @@ function inc_informer_auteur_dist($id)
 
 	return 	"<div class='arial2' style='padding: 5px; background-color: white; border: 1px solid $couleur_foncee; border-top: 0px;'>"
 	. (!$res ? '' : $res)
-	. "<div>"
+	. "<div><a href='"
+	. generer_url_ecrire('auteur_infos', "id_auteur=$id&initial=-1")
+	. "'>"
 	. bonhomme_statut($row)
-	. " <b>"
+	. "</a> <b>"
 	. $nom
-	. "</b>"
-	. $mail
-	. "</div>"
+	. "</b><br />"
+	. $nb
+	. "</div><br />"
 	. "<div>$bio</div>"
 	.  "</div>";
 }
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index 7db3382321332e3bfde12d7f6b414f77031d67f1..70e0ad81bef40f0794ad19e377b4a747de40f075 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -29,36 +29,6 @@ function choix_couleur() {
 	}
 }
 
-//
-// affiche un bouton imessage
-//
-// http://doc.spip.org/@bouton_imessage
-function bouton_imessage($destinataire, $row = '') {
-	// si on passe "force" au lieu de $row, on affiche l'icone sans verification
-	global $connect_id_auteur;
-	global $spip_lang_rtl;
-
-	// verifier que ce n'est pas un auto-message
-	if ($destinataire == $connect_id_auteur)
-		return;
-	// verifier que le destinataire a un login
-	if ($row != "force") {
-		$login_req = spip_query("SELECT login, messagerie FROM spip_auteurs where id_auteur=$destinataire AND en_ligne>DATE_SUB(NOW(),INTERVAL 15 DAY)");
-		$row = spip_fetch_array($login_req);
-
-		if (($row['login'] == "") OR ($row['messagerie'] == "non")) {
-			return;
-		}
-	}
-
-	if ($destinataire) $title = _T('info_envoyer_message_prive');
-	else $title = _T('info_ecire_message_prive');
-
-	$texte_bouton = http_img_pack("m_envoi$spip_lang_rtl.gif", "m&gt;", "width='14' height='7'", $title);
-		
-	return "<a href='". generer_url_ecrire("message_edit","new=oui&dest=$destinataire&type=normal"). "' title=\"$title\">$texte_bouton</a>";
-}
-
 // Faux HR, avec controle de couleur
 
 // http://doc.spip.org/@hr
@@ -893,21 +863,19 @@ function afficher_articles_boucle($row, &$tous_id, $afficher_auteurs, $afficher_
 
 	if ($afficher_auteurs) {
 		$les_auteurs = "";
-		$result_auteurs = spip_query("SELECT auteurs.id_auteur, nom, messagerie, login, bio FROM spip_auteurs AS auteurs, spip_auteurs_articles AS lien WHERE lien.id_article=$id_article AND auteurs.id_auteur=lien.id_auteur");
-
+		$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']);
-			$auteur_messagerie = $row['messagerie'];
 
 			if ($bio = texte_backend(supprimer_tags(couper($row['bio'],50))))
 				$bio = " title=\"$bio\"";
 
 
-			$les_auteurs .= ", <a href='" . generer_url_ecrire("auteurs_edit","id_auteur=$id_auteur") . "'$bio>$nom_auteur</a>";
-			if ($id_auteur != $connect_id_auteur AND $auteur_messagerie != "non"
-			AND $bouton = bouton_imessage($id_auteur, $row)) {
+			$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;
 			}
 		}
@@ -1535,7 +1503,8 @@ function afficher_forum_thread($row, $controle_id_article, $compteur_forum, $nb_
 	else	$res .= typo($auteur);
 
 	if ($id_auteur) {
-		$bouton = bouton_imessage($id_auteur);
+		$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
+		$bouton = $bouton_auteur($id_auteur);
 		if ($bouton) $res .= "&nbsp;".$bouton;
 	}
 
@@ -2420,13 +2389,14 @@ function auteurs_recemment_connectes()
 	$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')");
 
+	$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
 	if (spip_num_rows($result_auteurs)) {
 
 		$res = "<b>"._T('info_en_ligne')."</b>";
 		while ($row = spip_fetch_array($result_auteurs)) {
 			$id_auteur = $row["id_auteur"];
 			$nom_auteur = typo($row["nom"]);
-			$res .= " &nbsp; ".bouton_imessage($id_auteur,$row)."&nbsp;<a href='" . generer_url_ecrire("auteurs_edit","id_auteur=$id_auteur") . "' style='color: #666666;'>$nom_auteur</a>";
+			$res .= " &nbsp; ".bouton_auteur($id_auteur)."&nbsp;<a href='" . generer_url_ecrire("auteurs_edit","id_auteur=$id_auteur") . "' style='color: #666666;'>$nom_auteur</a>";
 		}
 	}
 
diff --git a/ecrire/inc/selectionner_auteur.php b/ecrire/inc/selectionner_auteur.php
index 8add59728f9d53f6c4522283f877bd8fc48e143a..1505c5d8a7f87f21e5638f814644d809ba57ef46 100644
--- a/ecrire/inc/selectionner_auteur.php
+++ b/ecrire/inc/selectionner_auteur.php
@@ -20,7 +20,7 @@ include_spip('inc/editer_auteurs');
 
 function inc_selectionner_auteur_dist($id_article)
 {
-	global $spip_lang_right;
+	global $spip_lang_right, $couleur_foncee;
 
 	$idom = 'bloc_selectionner_auteur';
 	$idom1 = $idom . "_champ_recherche";