diff --git a/ecrire/public/cacher.php b/ecrire/public/cacher.php
index 5d53067a5cd69330279d2fcce29f48d682783494..4f630cadd3b8746f08b63c9b09d21ac7c3404c1f 100644
--- a/ecrire/public/cacher.php
+++ b/ecrire/public/cacher.php
@@ -97,7 +97,8 @@ function retire_caches($chemin = '') {
 	}
 
 	// Et puis une centaine d'autres
-	if ($GLOBALS['meta']['invalider_caches']) {
+	$compte = 0;
+	if (isset($GLOBALS['meta']['invalider_caches'])) {
 		$compte = 1;
 		effacer_meta('invalider_caches'); # concurrence
 		ecrire_metas();
diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php
index 960677d88f6596e2f7d4b9152ca63fe257efce88..2e7c26284313e1eee1acfd21226cbcc1e1275219 100644
--- a/ecrire/public/compiler.php
+++ b/ecrire/public/compiler.php
@@ -153,7 +153,7 @@ function calculer_boucle_nonrec($id_boucle, &$boucles) {
 	// faudrait expanser le foreach a la compil, car y en a souvent qu'un 
 	// et puis faire un [] plutot qu'un "','."
 	if ($boucle->doublons)
-		$corps .= "		foreach(" . $boucle->doublons . ' as $k) $doublons[$k] .= "," . ' .
+		$corps .= "\n\t\t\tforeach(" . $boucle->doublons . ' as $k) $doublons[$k] .= "," . ' .
 		index_pile($id_boucle, $primary, $boucles)
 		. "; // doublons\n";
 
@@ -230,12 +230,7 @@ function calculer_boucle_nonrec($id_boucle, &$boucles) {
 		  $fin ;
 	}
 
-	return '
-	$t0 = "";
-	$SP++;'
-		. (!$flag_cpt  ? "" :
-			"\n	\$Numrows['$id_boucle']['compteur_boucle'] = 0;")
-		. ($boucle->mode_partie ? 
+	return ($boucle->mode_partie ? 
 		   calculer_parties($boucles, $id_boucle) :
 		   (!$boucle->numrows ? '' :
 		    ( "\n	\$Numrows['" .
@@ -243,6 +238,12 @@ function calculer_boucle_nonrec($id_boucle, &$boucles) {
 			"']['total'] = @spip_abstract_count(\$result,'" .
 			$boucle->sql_serveur .
 		      "');"))) .
+		(!$flag_cpt  ? "" :
+			"\n	\$Numrows['$id_boucle']['compteur_boucle'] = 0;")
+		. '
+	$t0 = "";
+	$SP++;'
+		.
 		$corps .
 		"\n	@spip_abstract_free(\$result,'" .
 		$boucle->sql_serveur . "');";
diff --git a/ecrire/public/phraser_html.php b/ecrire/public/phraser_html.php
index ff70a302fdd8caf5fdb8d459a2e408dd84e7c7b3..a223987a7ab9e3c324ea20a128feaf59f7e1f4f3 100644
--- a/ecrire/public/phraser_html.php
+++ b/ecrire/public/phraser_html.php
@@ -85,10 +85,10 @@ function phraser_polyglotte($texte,$ligne, $result) {
 			$champ->texte = $debut;
 			$champ->ligne = $ligne;
 			$result[] = $champ;
+			$ligne += substr_count($champ->texte, "\n");
 		}
 
 		$champ = new Polyglotte;
-		$ligne += substr_count($champ->texte, "\n");
 		$champ->ligne = $ligne;
 		$ligne += substr_count($match[0], "\n");
 		$lang = '';