Index: debian/prerm
===================================================================
--- debian/prerm	(revision 907)
+++ debian/prerm	(working copy)
@@ -17,8 +17,8 @@
     rm -f /var/alternc/dns/bureau
     rm -f /var/alternc/dns/$FQDN_LETTER/$FQDN
     rmdir -p /var/alternc/html/a/admin 2> /dev/null || true
+    rmdir -p /var/alternc/html/r/root 2> /dev/null || true
     rm -f /var/alternc/apacheconf/override_php.conf
-    rmdir -p /var/alternc/htm/a/admin 2> /dev/null || true
     ;;
 
 upgrade)
Index: bureau/admin/mail_list.php
===================================================================
--- bureau/admin/mail_list.php	(revision 904)
+++ bureau/admin/mail_list.php	(working copy)
@@ -34,9 +34,8 @@
 }
 include("head.php");
 
-if(!$res=$mail->enum_doms_mails($domain,1)) {
+if(!$res=$mail->enum_doms_mails($domain,1,$letter)) {
   $error=$err->errstr();
-
 ?>
 </head>
 <body>
@@ -45,7 +44,7 @@
 if ($error) {
   echo "<p class=\"error\">$error</p>";
 }
-echo "<p><a href=\"mail_add.php?domain=$domain\">".sprintf(_("Add a mailbox on <b>%s</b>"),$domain)."</a><br /";
+echo "<p><a href=\"mail_add.php?domain=$domain\">".sprintf(_("Add a mailbox on <b>%s</b>"),$domain)."</a><br />";
 echo "   <a href=\"mail_add.php?many=1&amp;domain=$domain\">".sprintf(_("Add many mailboxes on <b>%s</b>"),$domain)."</a></p>";
 ?>
 
@@ -64,10 +63,23 @@
   echo "<p class=\"error\">$error</p>";
 }
 
-echo "<p><a href=\"mail_add.php?domain=$domain\">".sprintf(_("Add a mailbox on <b>%s</b>"),$domain)."</a><br /";
+echo "<p><a href=\"mail_add.php?domain=$domain\">".sprintf(_("Add a mailbox on <b>%s</b>"),$domain)."</a><br />";
 echo "   <a href=\"mail_add.php?many=1&amp;domain=$domain\">".sprintf(_("Add many mailboxes on <b>%s</b>"),$domain)."</a></p>";
+
+if(!$letters=$mail->enum_doms_mails_letters($domain))
+  $error=$err->errstr();
+else{
+  for($i=0;$i<count($letters);$i++){
+    $val=$letters[$i];
+    echo "   <a href=\"mail_list.php?domain=$domain&amp;letter=$val\">$val&nbsp;</a></p>";
+  }
+  echo "   <a href=\"mail_list.php?domain=$domain\">".sprintf(_("All"))."</a></p>";
+}
+
+
 ?>
 
+
 <form method="post" action="mail_dodel.php" id="main">
 
 <table cellspacing="0" cellpadding="4">
Index: bureau/class/m_mail.php
===================================================================
--- bureau/class/m_mail.php	(revision 904)
+++ bureau/class/m_mail.php	(working copy)
@@ -73,7 +73,26 @@
   }
 
   /* ----------------------------------------------------------------- */
-  /** Retourne la liste des mails du domaine $dom
+  /** Retourne la liste des lettres pour lesquelles un domaine $dom a
+   * des e-mails
+   * Retourne un tableau indexé où se trouvent les lettres
+   * @param string $dom Domaine dont on veut les premières lettres des mails
+  * @return array Tableau de lettres ou FALSE si erreur
+   */
+  function enum_doms_mails_letters($dom) {
+    global $err,$cuid,$db;
+    $err->log("mail","enum_doms_mails_letters",$dom);
+    $db->query("SELECT LEFT(mail,1) as letter FROM mail_domain where uid='$cuid' AND type=0 and mail like '%@$dom' GROUP BY letter ORDER BY letter;");
+    $res=array();
+    while($db->next_record()) {
+      $res[]=$db->f("letter");
+    }
+    return $res;
+  }
+
+  /* ----------------------------------------------------------------- */
+  /** Retourne la liste des mails du domaine $dom et si une lettre est
+   * définie, cela retourne les mail qui commencent par celle ci
    * Retourne un tableau indexé de tableaux associatifs sous la forme :
    * $a["mail"]=Adresse email
    * $a["pop"]=1 ou 0 selon s'il s'agit d'un compte pop ou pas
@@ -83,10 +102,10 @@
    * @return array Tableau de mails comme indiqué ci-dessus ou FALSE si une erreur
    *  s'est produite
    */
-  function enum_doms_mails($dom,$sort=0) {
+  function enum_doms_mails($dom,$sort=0,$letter="") {
     global $err,$cuid,$db;
     $err->log("mail","enum_doms_mails",$dom);
-    $db->query("SELECT mail,pop,alias FROM mail_domain WHERE mail LIKE '%@$dom' AND uid='$cuid' AND type=0;");
+    $db->query("SELECT mail,pop,alias FROM mail_domain WHERE mail LIKE '$letter%@$dom' AND uid='$cuid' AND type=0;");
     $res=array(); $i=0;
     while ($db->next_record()) {
       if ($db->f("pop")) { 
Index: install/reset_root.php
===================================================================
--- install/reset_root.php	(revision 907)
+++ install/reset_root.php	(working copy)
@@ -37,9 +37,10 @@
 $admin->enabled=1;
 
 // On remet le pass admin a zero
-if (!$admin->update_mem(2000,"postmaster@".$L_FQDN,"Administrateur", "Admin", 'admin', 1, 1)) {
-	echo "erreur : ".$err->errstr()."<br>\n";
-	exit();
+if (!$admin->update_mem(2000,"postmaster@".$L_FQDN,"Administrateur", "Root", 'root', 1, 1))
+elseif(!$admin->update_mem(2000,"postmaster@".$L_FQDN,"Administrateur", "Admin", 'admin', 1, 1)) {
+    echo "erreur : ".$err->errstr()."<br>\n";
+    exit();
 }
 
 ?>
