diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php
index c25341f0b6dfa9c3362b26dbc96f769f936e54b5..a9722202c2303e976551cef6e9b2724693e46f38 100644
--- a/ecrire/public/composer.php
+++ b/ecrire/public/composer.php
@@ -267,14 +267,18 @@ function calculer_hierarchie($id_rubrique, $exclure_feuille = false) {
 	if (!$id_rubrique = intval($id_rubrique))
 		return '0';
 
-	$hierarchie = ",$id_rubrique";
+	$hierarchie = array();
 
-	do {
-		$id_rubrique = sql_parent($id_rubrique);
-		$hierarchie = "," . $id_rubrique . $hierarchie;
-	} while ($id_rubrique);
+	if (!$exclure_feuille)
+		$hierarchie[] = $id_rubrique;
 
-	return substr($hierarchie,1);
+	while ($id_rubrique = sql_parent($id_rubrique))
+		array_unshift($hierarchie, $id_rubrique);
+
+	if (count($hierarchie))
+		return join(',', $hierarchie);
+	else
+		return '0';
 }