diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php
index bb233eba6011fe175ba41b0d556f31e96f490d40..fde4e6084b35a452c78757b61b64aa2b2e54f60a 100644
--- a/ecrire/public/balises.php
+++ b/ecrire/public/balises.php
@@ -303,9 +303,11 @@ function calculer_balise_expose($p, $on, $off)
 	// Ne pas utiliser champ_sql, on jongle avec le nom boucle explicite
 	$c = index_pile($p->id_boucle, $type, $p->boucles);
 
-	if (isset($desc['field']['id_rubrique'])) {
+	if (isset($desc['field']['id_parent'])) {
+		$parent = 0; // pour if (!$parent) dans calculer_expose
+	} elseif (isset($desc['field']['id_rubrique'])) {
 		$parent = index_pile($p->id_boucle, 'id_rubrique', $p->boucles, $b);
-	} elseif (isset($desc['field']['id_groupe'])) {
+	} elseif  (isset($desc['field']['id_groupe'])) {
 		$parent = index_pile($p->id_boucle, 'id_groupe', $p->boucles, $b);
 	} else $parent = "''";
 		  
diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php
index a611078063eeb3e9d1bb63011ee9584702669cc7..9f7db2da019bd86fc852b9ba4133c8d0618e1d0c 100644
--- a/ecrire/public/composer.php
+++ b/ecrire/public/composer.php
@@ -295,7 +295,7 @@ function calculer_hierarchie($id_rubrique, $exclure_feuille = false) {
 // http://doc.spip.org/@calcul_exposer
 function calcul_exposer ($id, $prim, $reference, $parent, $type) {
 	static $exposer;
-	static $ref_precedente;
+	static $ref_precedente =-1;
 
 	// Que faut-il exposer ? Tous les elements de $reference
 	// ainsi que leur hierarchie ; on ne fait donc ce calcul
@@ -309,6 +309,7 @@ function calcul_exposer ($id, $prim, $reference, $parent, $type) {
 			if ($type == 'id_mot')
 				$exposer['id_groupe'][$parent] = true;
 			if ($type != 'id_groupe') {
+			  if (!$parent) $parent = $principal;
 			  $a = split(',',calculer_hierarchie($parent));
 			  foreach($a as $n) $exposer['id_rubrique'][$n] = true;
 			}