diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php
index 2bc58e3764a3581a776dfd7316b7f02478a373a4..36560b6b5d75a74a959457b6f4216b77d5403669 100644
--- a/ecrire/public/compiler.php
+++ b/ecrire/public/compiler.php
@@ -267,6 +267,7 @@ function calculer_boucle_nonrec($id_boucle, &$boucles) {
 	} else {
 
 		$corps = $init . '
+	$SP++;
 
 	// RESULTATS
 	while ($Pile[$SP] = @sql_fetch($result,"' .
@@ -287,8 +288,7 @@ function calculer_boucle_nonrec($id_boucle, &$boucles) {
 		(!$flag_cpt  ? "" :
 			"\n	\$Numrows['$id_boucle']['compteur_boucle'] = 0;")
 		. '
-	$t0 = "";
-	$SP++;'
+	$t0 = "";'
 		.
 		$corps .
 		"\n	@sql_free(\$result,'" .
diff --git a/ecrire/public/phraser_html.php b/ecrire/public/phraser_html.php
index 4f706468b5e08f13863bf86fed16b5f45b1d743a..c718d1bf6d19983cf48c754569eb49540ebba49a 100644
--- a/ecrire/public/phraser_html.php
+++ b/ecrire/public/phraser_html.php
@@ -595,9 +595,9 @@ function public_phraser_html($texte, $id_parent, &$boucles, $nom, $ligne=1) {
 
 		if ($soustype == 'sites') $soustype = 'syndication' ; # alias
 		      
-		phraser_args($milieu,">","",$all_res,$result);
+		phraser_args($milieu,"/>","",$all_res,$result);
 		$params = substr($milieu,0,@strpos($milieu,$result->apres));
-		$milieu = substr($result->apres,1);
+		$milieu = $result->apres;
 		$result->apres = "";
 
 		//
@@ -611,7 +611,6 @@ function public_phraser_html($texte, $id_parent, &$boucles, $nom, $ligne=1) {
 			array_unshift($args,
 				      substr($type, strlen(TYPE_RECURSIF)));
 			$result->param = $args;
-#			$milieu = substr($milieu, strpos($milieu, '>')+1);
 		} else {
 			$result->type_requete = $soustype;
 			phraser_criteres($result->param, $result);
@@ -620,16 +619,22 @@ function public_phraser_html($texte, $id_parent, &$boucles, $nom, $ligne=1) {
 		//
 		// Recuperer la fin :
 		//
-		$s = BALISE_FIN_BOUCLE . $id_boucle . ">";
-		$p = strpos($milieu, $s);
-		if ($p === false) {
-			erreur_squelette(_T('zbug_erreur_boucle_syntaxe'),
+		if ($milieu[0] === '/') {
+			$suite = substr($milieu,2);
+			$milieu = '';
+		} else {
+			$milieu = substr($milieu,1);
+			$s = BALISE_FIN_BOUCLE . $id_boucle . ">";
+			$p = strpos($milieu, $s);
+			if ($p === false) {
+				erreur_squelette(_T('zbug_erreur_boucle_syntaxe'),
 					 _T('zbug_erreur_boucle_fermant',
 						array('id'=>$id_boucle)));
-		}
+			}
 
-		$suite = substr($milieu, $p + strlen($s));
-		$milieu = substr($milieu, 0, $p);
+			$suite = substr($milieu, $p + strlen($s));
+			$milieu = substr($milieu, 0, $p);
+		}
 		//
 		// 1. Recuperer la partie conditionnelle apres
 		//