diff --git a/ecrire/base/upgrade.php b/ecrire/base/upgrade.php
index 05a9e8da03495cc5e003286121c32073276e0ecb..0869c1f048952632998e00650d276a8795cb61c3 100644
--- a/ecrire/base/upgrade.php
+++ b/ecrire/base/upgrade.php
@@ -231,7 +231,8 @@ function maj_base($version_cible = 0) {
 		spip_query("ALTER TABLE spip_rubriques ADD INDEX id_parent (id_parent)");
 		spip_query("ALTER TABLE spip_rubriques ADD statut VARCHAR(10) NOT NULL");
 		// Declencher le calcul des rubriques publiques
-		spip_query("REPLACE spip_meta (nom, valeur) VALUES ('calculer_rubriques', 'oui')");
+		include_spip('inc/rubriques');
+		calculer_rubriques();
 		maj_version (1.207);
 	}
 
diff --git a/ecrire/exec/accueil.php b/ecrire/exec/accueil.php
index 1489de65c4a80f7b27ff908b23e9a5bf13edb9eb..8505e6b088f1a1159c0bdf1f92ffd356d5068ffe 100644
--- a/ecrire/exec/accueil.php
+++ b/ecrire/exec/accueil.php
@@ -326,37 +326,35 @@ if ($spip_display != 4) {
 	if(strlen(propre($GLOBALS['meta']["descriptif_site"])))
 	echo "<div>".propre($GLOBALS['meta']["descriptif_site"])."</div><br />";
 
-    $res = spip_query("SELECT COUNT(*) AS cnt, statut FROM spip_articles GROUP BY statut");
+	$res = spip_query("SELECT COUNT(*) AS cnt, statut FROM spip_articles GROUP BY statut HAVING cnt <>0");
   
-  while($row = spip_fetch_array($res)) {
-    $var  = 'nb_art_'.$row['statut'];
-    $$var = $row['cnt']; 
-  }
+	while($row = spip_fetch_array($res)) {
+	    	$cpt[$row['statut']] = $row['cnt']; 
+	}
   
-	if ($nb_art_prepa OR $nb_art_prop OR $nb_art_publie) {
+	if ($cpt) {
 
 		echo afficher_plus(generer_url_ecrire("articles_page",""))."<b>"._T('info_articles')."</b>";
 		echo "<ul style='margin:0px; padding-$spip_lang_left: 20px; margin-bottom: 5px;'>";
-		if ($nb_art_prepa) echo "<li>"._T("texte_statut_en_cours_redaction").": ".$nb_art_prepa;
-		if ($nb_art_prop) echo "<li>"._T("texte_statut_attente_validation").": ".$nb_art_prop;
-		if ($nb_art_publie) echo "<li><b>"._T("texte_statut_publies").": ".$nb_art_publie."</b>";
+		if (isset($cpt['prepa'])) echo "<li>"._T("texte_statut_en_cours_redaction").": ".$cpt['prepa'], '</li>';
+		if (isset($cpt['prop'])) echo "<li>"._T("texte_statut_attente_validation").": ".$cpt['prop'], '</li>';
+		if (isset($cpt['publie'])) echo "<li><b>"._T("texte_statut_publies").": ".$cpt['publie']."</b>", '</li>';
 		echo "</ul>";
 
 	}
 
-	$res = spip_query("SELECT COUNT(*) AS cnt, statut FROM spip_breves GROUP BY statut");
-
+	$res = spip_query("SELECT COUNT(*) AS cnt, statut FROM spip_breves GROUP BY statut HAVING cnt <>0");
 
+	$cpt = array();
 	while($row = spip_fetch_array($res)) {
-		$var  = 'nb_bre_'.$row['statut'];
-		$$var = $row['cnt']; 
+		$cpt[$row['statut']] = $row['cnt']; 
 	}
  
-	if ($nb_bre_prop OR $nb_bre_publie) {
+	if ($cpt) {
 		echo afficher_plus(generer_url_ecrire("breves",""))."<b>"._T('info_breves_02')."</b>";
 		echo "<ul style='margin:0px; padding-$spip_lang_left: 20px; margin-bottom: 5px;'>";
-		if ($nb_bre_prop) echo "<li>"._T("texte_statut_attente_validation").": ".$nb_bre_prop;
-		if ($nb_bre_publie) echo "<li><b>"._T("texte_statut_publies").": ".$nb_bre_publie."</b>";
+		if (isset($cpt['prop'])) echo "<li>"._T("texte_statut_attente_validation").": ".$cpt['prop'], '</li>';
+		if (isset($cpt['publie'])) echo "<li><b>"._T("texte_statut_publies").": ".$cpt['publie'], "</b>",'</li>';
 		echo "</ul>";
 	}
 
@@ -370,19 +368,17 @@ if ($spip_display != 4) {
 		echo "</ul>";
 	}
 
-	$res = spip_query("SELECT COUNT(*) AS cnt, statut FROM spip_auteurs GROUP BY statut");
+	$res = spip_query("SELECT COUNT(*) AS cnt, statut FROM spip_auteurs GROUP BY statut HAVING cnt <>0");
 
-	while($row = spip_fetch_array($res)) {
-		$var  = 'nb_aut_'.$row['statut'];
-		$$var = $row['cnt']; 
-	}
+	$cpt = array();
+	while($row=spip_fetch_array($res)) $cpt[$row['statut']] = $row['cnt']; 
 
-	if ($nb_aut_0minirezo OR $nb_aut_1comite OR $nb_aut_6forum) {
+	if ($cpt) {
 		echo afficher_plus(generer_url_ecrire("auteurs",""))."<b>"._T('icone_auteurs')."</b>";
 		echo "<ul style='margin:0px; padding-$spip_lang_left: 20px; margin-bottom: 5px;'>";
-		if ($nb_aut_0minirezo) echo "<li>"._T("info_administrateurs").": ".$nb_aut_0minirezo;
-		if ($nb_aut_1comite) echo "<li>"._T("info_redacteurs").": ".$nb_aut_1comite;
-		if ($nb_aut_6forum) echo "<li>"._T("info_visiteurs").": ".$nb_aut_6forum;
+		if (isset($cpt['0minirezo'])) echo "<li>",_T("info_administrateurs"),": ",$cpt['0minirezo'], '</li>';
+		if (isset($cpt['1comite'])) echo "<li>",_T("info_redacteurs"),": ",$cpt['1comite'], '</li>';
+		if (isset($cpt['6forum'])) echo "<li>",_T("info_visiteurs"),": ",$cpt['6forum'], '</li>';
 		echo "</ul>";
 	}
 
@@ -491,17 +487,5 @@ echo "<p>";
 
 
  fin_page("jimmac");
-
-
-//
-// Symetrique du debut: apres restauration ou MAJ, recalculer les rubriques
-//
-
-	if (isset($GLOBALS['meta']['calculer_rubriques'])) {
-		calculer_rubriques();
-		effacer_meta('calculer_rubriques');
-		ecrire_metas();
-	}
-
 }
 ?>
diff --git a/ecrire/exec/import_all.php b/ecrire/exec/import_all.php
index 391aeda0ec2d53e50189fb6ec7851d1a22716c48..a53c96e3a105ab75993aa5dea1936aca465d3d37 100644
--- a/ecrire/exec/import_all.php
+++ b/ecrire/exec/import_all.php
@@ -109,5 +109,7 @@ function exec_import_all_dist()
 	// au rappel, on commence (voire on continue)
 	include_spip('inc/import');
 	import_all_continue();
+	include_spip('inc/rubriques');
+	calculer_rubriques();
 }
 ?>
diff --git a/ecrire/inc/import.php b/ecrire/inc/import.php
index 9261426adee1f3f2ee0f57ca814010bba26b5ce8..687795118e9b566e8629d771a1226ed21d6d6740 100644
--- a/ecrire/inc/import.php
+++ b/ecrire/inc/import.php
@@ -132,7 +132,6 @@ function import_fin() {
 	effacer_meta('fichier_restauration');
 	effacer_meta('version_archive_restauration');
 	effacer_meta('tag_archive_restauration');
-	ecrire_meta('calculer_rubriques', 'oui');
 	ecrire_metas();
 }
 
@@ -428,7 +427,7 @@ function import_all_continue()
 		spip_log("Erreur: $r");
 		import_abandon();
 	}
-	else	import_fin();
+	else import_fin();
 }
 
 ?>