diff --git a/inc-compilo.php3 b/inc-compilo.php3
index 9e8e3dd037f5ca10f220a9969af9e9e5ae5d2959..f26d15e7e66ec1a992d9ff5c561cd7cd46d7f945 100644
--- a/inc-compilo.php3
+++ b/inc-compilo.php3
@@ -57,13 +57,13 @@ function calculer_inclure($struct, $descr, &$boucles, $id_boucle) {
 	$l = array();
 	foreach($struct->param as $val) {
 		$var = array_shift($val);
-		$l[] = "\'$var\' => \'' . addslashes(" .
-		    ($val ? calculer_liste($val[0], $descr, $boucles, $id_boucle) :
-		    (($var =='lang') ?
-		     '$GLOBALS["spip_lang"]' :
-		     index_pile($id_boucle, $var, $boucles)))
-		    . ") . '\\'";
-		}
+		$futurval = ($val ? calculer_liste($val[0], $descr, $boucles, $id_boucle) :(($var =='lang') ? '$GLOBALS["spip_lang"]' : index_pile($id_boucle, $var, $boucles))); 
+		$l[] = "\'$var\' => ' . (!is_array(\$x = " .
+		  $futurval . 
+		  ") ? (\"'\" . addslashes(\$x) . \"'\") :
+ 		argumenter_balise_dynamique(array(\$x))) . '";
+
+	}
 
 	return "\n'<".
 		"?php\n\t\$contexte_inclus = array(" .