diff --git a/ecrire/inc_presentation.php b/ecrire/inc_presentation.php
index 9be5f0300c2fba068e6be78be797a03060ab57c7..6ad7f7e3e78a78e25314ad66fe150c7e6e6673e7 100644
--- a/ecrire/inc_presentation.php
+++ b/ecrire/inc_presentation.php
@@ -1835,7 +1835,7 @@ function debut_javascript($admin, $stat)
 	a.send(null);
 }";
 	} else $ajax = "";
-	spip_log("Ajax $ajax " . $GLOBALS['_COOKIE']['spip_accepte_ajax']);
+
 	return 
 	// envoi le fichier JS de config si browser ok.
 		$GLOBALS['browser_layer'] .
diff --git a/formulaires/formulaire_ecrire_auteur.html b/formulaires/formulaire_ecrire_auteur.html
index d35cb31aa8867f2b08183cc599d8092e16dbba5c..382db66f7545d4f84e01a51d6c74a1522ef5504d 100644
--- a/formulaires/formulaire_ecrire_auteur.html
+++ b/formulaires/formulaire_ecrire_auteur.html
@@ -7,12 +7,12 @@
 [(#REM) Previsualisation ... ]
 [<input type="hidden" name="num_formulaire_ecrire_auteur" value="(#ENV{valide})" />]
 [<div class='spip_encadrer'>
-<i>[(#ENV{mail})]</i> - <strong>[(#ENV{sujet})]</strong>
+<i>#ENV{mail}</i> - <strong>#ENV{sujet}</strong>
 <div>
 [(#ENV{texte}|nl2br)]
 </div>
 <div style="text-align:#LANG_RIGHT;">
-	<input type="submit"  class="spip_bouton" name="confirmer[(#ENV{id})]"
+	<input type="submit"  class="spip_bouton" name="confirmer#ENV{id}"
 		 value="(#ENV{boutonconfirmation})" />
 </div>
 </div>
@@ -20,19 +20,19 @@
 
 [(#REM) Formulaire normal   ]
 <p><label><:form_pet_votre_email:><br />
-<input type="text" class="forml" name="email_message_auteur[(#ENV{id})]"
-	value="[(#ENV{mail})]" size="30" />
+<input type="text" class="forml" name="email_message_auteur#ENV{id}"
+	value="#ENV{mail}" size="30" />
 </label></p>
 <p><label><:form_prop_sujet:><br />
-<input type="text" class="forml" name="sujet_message_auteur[(#ENV{id})]"
-	value="[(#ENV{sujet})]" size="30" />
+<input type="text" class="forml" name="sujet_message_auteur#ENV{id}"
+	value="#ENV{sujet}" size="30" />
 </label></p>
 <p>
-<textarea name="texte_message_auteur[(#ENV{id})]" rows='10' class='forml' cols='40'>[(#ENV{texte})]</textarea>
+<textarea name="texte_message_auteur#ENV{id}" rows='10' class='forml' cols='40'>#ENV{texte}</textarea>
 </p>
 <div style="text-align:#LANG_RIGHT;">
 	<input type="submit"  class="spip_bouton" name="valide"
-		 value="[(#ENV{bouton})]" />
+		 value="#ENV{bouton}" />
 </div>
 
 </form>
diff --git a/inc-compilo-index.php3 b/inc-compilo-index.php3
index 619e8d12e68b3d48fc1d7facb1cb22fdcc9d88c1..5927f20c634153111e4187d2f4d4330714b2f228 100644
--- a/inc-compilo-index.php3
+++ b/inc-compilo-index.php3
@@ -187,6 +187,9 @@ function calculer_balise($nom, $p) {
 	// ca pourrait etre un champ SQL homonyme,
 	$p->code = index_pile($p->id_boucle, $nom, $p->boucles, $p->nom_boucle);
 
+	// compatibilite: depuis qu'on accepte #BALISE{ses_args} sans [(...)] autour
+	// il faut recracher {...} quand ce n'est finalement pas des args
+	if ($p->param) {$p->code .= " . '{" . addslashes($p->param[0][1][0]->texte) . "}'";}
 	// ne pas passer le filtre securite sur les id_xxx
 	if (strpos($nom, 'ID_') === 0)
 		$p->interdire_scripts = false;
diff --git a/inc-html-squel.php3 b/inc-html-squel.php3
index bff7a3775bf1453c76cba80d4d3a078bd0d9b9da..74e72d9c2ad0714b6c3c1a557e9b17a82743d4ab 100644
--- a/inc-html-squel.php3
+++ b/inc-html-squel.php3
@@ -149,6 +149,9 @@ function phraser_champs($texte,$ligne,$result) {
 		$champ->nom_boucle = $match[2];
 		$champ->nom_champ = $match[3];
 		$champ->etoile = $match[5];
+		if ($suite[0] == '{') {
+		  phraser_arg($suite, '', '', array(), $champ);
+		}
 		$texte = $suite;
 		$result[] = $champ;
 	  } else {
@@ -183,6 +186,15 @@ function phraser_champs_etendus($texte, $ligne,$result) {
 function phraser_args($texte, $fin, $sep, $result, &$pointeur_champ) {
   $texte = ltrim($texte);
   while (($texte!=="") && strpos($fin, $texte[0]) === false) {
+	$result = phraser_arg($texte, $fin, $sep, $result, $pointeur_champ);
+  }
+# mettre ici la suite du texte, 
+# notamment pour que l'appelant vire le caractere fermant si besoin
+  $pointeur_champ->apres = $texte;
+  return $result;
+}
+
+function phraser_arg(&$texte, $fin, $sep, $result, &$pointeur_champ) {
       preg_match(",^(\|?[^{)|]*)(.*)$,ms", $texte, $match);
       $suite = ltrim($match[2]);
       $fonc = trim($match[1]);
@@ -216,6 +228,7 @@ function phraser_args($texte, $fin, $sep, $result, &$pointeur_champ) {
 		      }   
 		}
 		$arg = $regs[2];
+
 		if (trim($regs[1])) {
 			$champ = new Texte;
 			$champ->texte = $arg;
@@ -263,7 +276,6 @@ function phraser_args($texte, $fin, $sep, $result, &$pointeur_champ) {
 		  if ($collecte)
 		    {$res[] = $collecte; $collecte = array();}
 		}
-
 	}
 	if ($collecte) {$res[] = $collecte; $collecte = array();}
 	$args = substr($args,1);
@@ -273,12 +285,10 @@ function phraser_args($texte, $fin, $sep, $result, &$pointeur_champ) {
       // pour les balises avec faux filtres qui boudent ce dur larbeur
       $pointeur_champ->fonctions[] = array($fonc, substr($suite, 0, $n));
       $texte = ltrim($args);
-  }
-  # laisser l'appelant virer le caractere fermant
-  $pointeur_champ->apres = $texte;
-  return $result;
+      return $result;
 }
 
+
 function phraser_champs_exterieurs($texte, $ligne, $sep, $nested) {
 	$res = array();
 	while (($p=strpos($texte, "%$sep"))!==false) {