diff --git a/ecrire/exec/admin_plugin.php b/ecrire/exec/admin_plugin.php
index de4eeeddbc1b069c21f63fc7326acb3e8ca5733d..652311e173cf879e1896f239751c761c83751bae 100644
--- a/ecrire/exec/admin_plugin.php
+++ b/ecrire/exec/admin_plugin.php
@@ -1,5 +1,15 @@
 <?php
 
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2007                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/config');
@@ -31,7 +41,7 @@ function exec_admin_plugin() {
 		// pour la peine, un redirige, 
 		// que les plugin charges soient coherent avec la liste
 		include_spip('inc/headers');
-		redirige_par_entete(generer_url_ecrire('admin_plugin'));
+		redirige_par_entete(generer_url_ecrire(_request('exec')));
 	}
 	else
 		verif_plugin();
@@ -69,8 +79,11 @@ div.cadre-padding ul li li div.nomplugin a {
 }
 div.cadre-padding ul li li div.nomplugin_on {
 	background:$couleur_claire;
+}
+div.cadre-padding ul li li div.nomplugin_on>a {
 	font-weight:bold;
 }
+
 div.cadre-padding div.droite label {
 	padding:.3em;
 	background:#EFEFEF;
@@ -121,8 +134,6 @@ EOF;
 	$s .= "<p><span class='experimental'>&nbsp;</span>"._T('plugin_etat_experimental')."</p>";
 	echo $s;
 	fin_boite_info();
-	/*echo "<a href='#' onclick=\"$('input.check').attr('checked','checked');\">"._L("tout_activer")."</a><br/>";
-	echo "<a href='#' onclick=\"$('input.check').attr('checked','');\">"._L("tout_desactiver")."</a><br/>";*/
 
 	debut_droite();
 
@@ -136,7 +147,7 @@ EOF;
 	echo "<tr><td class='serif' colspan='4'>";
 	echo _T('texte_presente_plugin');
 
-	echo generer_url_post_ecrire("admin_plugin");
+	echo generer_url_post_ecrire(_request('exec'));
 
 	echo "<ul>";
 	affiche_arbre_plugins(liste_plugin_files(),liste_chemin_plugin_actifs());
@@ -188,7 +199,7 @@ function tree_open_close_dir(&$current,$target,$deplie=array()){
 		$chemin .= $open . "/";
 		$output .= "<li>";
 		$output .= $visible? bouton_block_visible($chemin):bouton_block_invisible($chemin);
-		$output .= "$chemin\n<ul>";
+		$output .= "<span onclick=\"jQuery(this).prev().click();\">$chemin</span>\n<ul>";
 			
 		$output .= $visible? debut_block_visible($chemin):debut_block_invisible($chemin);
 	}
@@ -228,8 +239,12 @@ function affiche_arbre_plugins($liste_plugins,$liste_plugins_actifs){
 			$('input.check').click(function(){\$(this).parent().toggleClass('nomplugin_on');});
 		});
 	$(document).ready(function(){
-		$('div.nomplugin a[@rel=info]').click(function(){
-			$(this).siblings('div.info').prepend(ajax_image_searching).load($(this).name());
+		$('div.nomplugin a[@rel=info]').click(function() {
+			if (!$(this).siblings('div.info').html()) {
+				$(this).siblings('div.info').prepend(ajax_image_searching).load($(this).name());
+			} else {
+				$(this).siblings('div.info').toggle();
+			}
 			return false;
 		});
 	});
@@ -275,11 +290,10 @@ function ligne_plug($plug_file, $actif, $id){
 	if (isset($info['etat']))
 		$etat = $info['etat'];
 	$nom = typo($info['nom']);
-	// puce d'etat du plugin
-	// <etat>dev|experimental|test|stable</etat>
+
 	$id = substr(md5("aide_$plug_file"),0,8);
-	//$s .= "<span class='formInfo'><a href='".generer_url_ecrire('info_plugin',"plug=$plug_file&width=500&link=$url")."' class='jTip' name=\"".attribut_html($nom)."\" id='$id'>?</a></span>";
-	$s .= "<span class='$etat'>&nbsp;</span>";
+	$s .= "<span class='$etat' title='$etat'>&nbsp;</span>";
+
 	if (!$erreur){
 		$s .= "<input type='checkbox' name='statusplug_$plug_file' value='O' id='label_$id_input'";
 		$s .= $actif?" checked='checked'":"";
@@ -288,14 +302,16 @@ function ligne_plug($plug_file, $actif, $id){
 	$id_input++;
 
 	//$s .= bouton_block_invisible("$plug_file");
-	$url_stat = generer_url_ecrire('admin_plugin',"plug=$plug_file",'&');
+	$url_stat = generer_url_ecrire(_request('exec'),"plug=$plug_file",'&');
 	$url_dyn = generer_url_ecrire('info_plugin',"plug=$plug_file");
 	$s .= "<a href='$url_stat' rel='info' name='$url_dyn'>$nom</a>";
+
 	$s .= "<div class='info'>";
 	// afficher les details d'un plug en secours
 	if (_request('plug')==$plug_file)
 		$s .= affiche_bloc_plugin($plug_file, $info);
 	$s .= "</div>";
+
 	$s .= "</div>";
 	return $s;
 }
diff --git a/ecrire/inc/plugin.php b/ecrire/inc/plugin.php
index 55e0b125da8bdcf3d5a2e478095fcdc6f559e56f..3e728e71796363cab37cd1f65178182b4a66b604 100644
--- a/ecrire/inc/plugin.php
+++ b/ecrire/inc/plugin.php
@@ -314,11 +314,12 @@ function plugin_get_infos($plug){
 					$arbre = array('erreur' => array(_T('erreur_plugin_fichier_def_absent')." : $plug/plugin.xml"));
 				}
 				plugin_verifie_conformite($plug,$arbre);
-				
 				$ret['nom'] = spip_xml_aplatit($arbre['nom']);
 				$ret['version'] = trim(end($arbre['version']));
 				if (isset($arbre['auteur']))
 					$ret['auteur'] = spip_xml_aplatit($arbre['auteur']);
+				if (isset($arbre['icon']))
+					$ret['icon'] = spip_xml_aplatit($arbre['icon']);
 				if (isset($arbre['description']))
 					$ret['description'] = spip_xml_aplatit($arbre['description']);
 				if (isset($arbre['lien']))
@@ -444,6 +445,8 @@ function verifie_include_plugins() {
 
 // http://doc.spip.org/@affiche_bloc_plugin
 function affiche_bloc_plugin($plug_file, $info) {
+	global $spip_lang_right;
+
 	// puce d'etat du plugin
 	// <etat>dev|experimental|test|stable</etat>
 	$etat = 'dev';
@@ -467,8 +470,12 @@ function affiche_bloc_plugin($plug_file, $info) {
 			$titre_etat = _T('plugin_etat_developpement');
 			break;
 	}
-	
+
 	$s .= "<div class='detailplugin verdana2'>";
+
+	if (isset($info['icon']))
+		$s .= "<img src='". _DIR_PLUGINS.$plug_file.'/'.trim($info['icon'])."' style='float:$spip_lang_right;' alt=' ' />\n";
+
 	$s .= _T('version') .' '.  $info['version'] . " | <strong>$titre_etat</strong><br/>";
 	$s .= _T('repertoire_plugins') .' '. $plug_file . "<br/>";
 
@@ -477,8 +484,12 @@ function affiche_bloc_plugin($plug_file, $info) {
 
 	if (isset($info['auteur']))
 		$s .= "<hr/>" . _T('auteur') .' '. propre($info['auteur']) . "<br/>";
-	if (isset($info['lien']))
-		$s .= "<hr/>" . _T('info_url') .' '. propre($info['lien']) . "<br/>";
+	if (isset($info['lien'])) {
+		if (preg_match(',^https?://,iS', $info['lien']))
+			$s .= "<hr/>" . _T('info_url') .' '. propre("[->".$info['lien']."]") . "<br/>";
+		else
+			$s .= "<hr/>" . _T('info_url') .' '. propre($info['lien']) . "<br/>";
+	}
 	$s .= "</div>";
 
 	return $s;