diff --git a/ecrire/action/instituer.php b/ecrire/action/instituer.php
index 5c7aa82c55fc1c089f387f9a7bb285dfff9a7689..eef2858fbf74b12e506e9959be4bdb0066ef1c06 100644
--- a/ecrire/action/instituer.php
+++ b/ecrire/action/instituer.php
@@ -12,8 +12,11 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-function action_instituer_dist()
-{
+#
+# Gere les actions cachees derrire le petit iframe de l'espace prive (faux Ajax)
+#
+
+function action_instituer_dist() {
 	global $action, $arg, $hash, $id_auteur;
 	include_ecrire("inc_session");
 	if (!verifier_action_auteur("$action $arg", $hash, $id_auteur)) {
@@ -23,19 +26,22 @@ function action_instituer_dist()
 
 	ereg("^([^ ]*) (.*)$", $arg, $r);
 	$var_nom = 'instituer_' . $r[1];
-	if (function_exists($var_nom))
-	  $var_nom($r[2]);
-	else spip_log("spip_action_$action: $arg incompris");
+	if (function_exists($var_nom)) {
+		spip_log("$var_nom $r[2]");
+		$var_nom($r[2]);
+	}
+	else
+		spip_log("action $action: $arg incompris");
 }
 
-function instituer_collaboration($debloquer_article)
-{
-        global $id_auteur;
-        if ($debloquer_article AND ($id_auteur = intval($id_auteur))) {
-                if ($debloquer_article <> 'tous')
-                        $where_id = "AND id_article=".intval($debloquer_article);
-                spip_query ("UPDATE spip_articles SET auteur_modif='0' WHERE auteur_modif=$id_auteur $where_id");
-        }
+function instituer_collaboration($debloquer_article) {
+	global $id_auteur;
+	if ($debloquer_article AND ($id_auteur = intval($id_auteur))) {
+		if ($debloquer_article <> 'tous')
+			$where_id = "AND id_article=".intval($debloquer_article);
+		spip_query ("UPDATE spip_articles SET auteur_modif='0'
+		WHERE auteur_modif=$id_auteur $where_id");
+	}
 }
 
 function instituer_forum($arg) {
@@ -75,18 +81,20 @@ function instituer_forum($arg) {
 	}
 }
 
-function instituer_article($arg)
-{	list($id_article, $statut) = split(' ', $arg);
+function instituer_article($arg) {
+	list($id_article, $statut) = split(' ', $arg);
 
 	$id_article = intval($id_article);
-	$result = spip_query("SELECT statut FROM spip_articles WHERE id_article=$id_article");
+	$result = spip_query("SELECT statut FROM spip_articles
+	WHERE id_article=$id_article");
 
 	if ($row = spip_fetch_array($result)) {
 		$statut_ancien = $row['statut'];
 		}
 
 	if ($statut != $statut_ancien) {
-		spip_query("UPDATE spip_articles SET statut='$statut', date=NOW() WHERE id_article=$id_article");			
+		spip_query("UPDATE spip_articles SET statut='$statut',
+		date=NOW() WHERE id_article=$id_article");
 		include_ecrire("inc_rubriques");
 		include_ecrire('inc_texte');
 		calculer_rubriques();
@@ -96,8 +104,8 @@ function instituer_article($arg)
 }
 
 
-function instituer_breve($arg)
-{	list($id_breve, $statut) = split(' ', $arg);
+function instituer_breve($arg) {
+	list($id_breve, $statut) = split(' ', $arg);
 
 	$id_breve = intval($id_breve);
 	$query = "SELECT statut FROM spip_breves WHERE id_breve=$id_breve";
@@ -107,7 +115,8 @@ function instituer_breve($arg)
 		}
 
 	if ($statut != $statut_ancien) {
-		spip_query("UPDATE spip_breves SET date_heure=NOW(), statut='$statut' WHERE id_breve=$id_breve");
+		spip_query("UPDATE spip_breves SET date_heure=NOW(),
+		statut='$statut' WHERE id_breve=$id_breve");
 
 		include_ecrire("inc_rubriques");
 		calculer_rubriques();
diff --git a/ecrire/exec/auth.php b/ecrire/inc/auth.php
similarity index 99%
rename from ecrire/exec/auth.php
rename to ecrire/inc/auth.php
index b106f4a6dc0babe9e9c957062dca1c9184ff0d8d..b70092766155af79c8fc8789992088a27b062e88 100644
--- a/ecrire/exec/auth.php
+++ b/ecrire/inc/auth.php
@@ -32,7 +32,7 @@ function acces_restreint_rubrique($id_rubrique) {
 }
 
 
-function exec_auth_dist() {
+function inc_auth_dist() {
 	global $_POST, $_GET, $_COOKIE, $_SERVER;
 	global $auth_can_disconnect, $ignore_auth_http, $ignore_remote_user;
 
diff --git a/ecrire/inc_spip_sax.php b/ecrire/inc/sax.php
similarity index 99%
rename from ecrire/inc_spip_sax.php
rename to ecrire/inc/sax.php
index 69a21b85606f0eb2f9bf57a57158e6eef8f63288..83602ef1b5effed2559998a9e6710ac09e03a9bc 100644
--- a/ecrire/inc_spip_sax.php
+++ b/ecrire/inc/sax.php
@@ -176,8 +176,7 @@ xml_set_processing_instruction_handler($xml_parser, array($phraseur_xml, 'PiElem
 xml_set_default_handler($xml_parser, array($phraseur_xml, "defautElement"));
 xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, false);
 
-function spip_sax($page)
-{
+function inc_sax_dist($page) {
 	global $phraseur_xml, $xml_parser, $xhtml_error;
 	$res = $phraseur_xml->xml_parsestring($xml_parser, $page);
 	if ($res[0] != '<')
diff --git a/ecrire/exec/tidy.php b/ecrire/inc/tidy.php
similarity index 99%
rename from ecrire/exec/tidy.php
rename to ecrire/inc/tidy.php
index 697101f71dca7c2b111c5850ac55dc79c4a86d78..06099f05cf1dd7d2bb837a6d0825797798ec821d 100644
--- a/ecrire/exec/tidy.php
+++ b/ecrire/inc/tidy.php
@@ -45,7 +45,7 @@ function echappe_xhtml ($letexte) { // oui, c'est dingue... on echappe le mathml
 
 $GLOBALS['xhtml'] = 'tidy'; # se raccrocher aux brances de la nouvelle API
 
-function exec_tidy_dist($buffer) {
+function inc_tidy_dist($buffer) {
 	$buffer = traite_xhtml($buffer);
 
 /** ici commence la petite usine a gaz des traitements d'erreurs de tidy **/
diff --git a/ecrire/index.php b/ecrire/index.php
index d6bb9e8f49457e03ab3e7ad0cecd66e281ad9fe8..ef3616e822ea8a3f18a44e89bce7781ead6c6957 100644
--- a/ecrire/index.php
+++ b/ecrire/index.php
@@ -25,7 +25,7 @@ if (autoriser_sans_cookie($exec)) {
 	if (!isset($reinstall)) $reinstall = 'non';
 } else {
 	include_ecrire ("inc_session");
-	$var_auth = include_fonction('auth');
+	$var_auth = include_fonction('auth', 'inc');
 	if (!$var_auth()) exit;
 }
 
diff --git a/ecrire/public.php b/ecrire/public.php
index 54fda0a65680334b3c0fe5f0842740f48ce61395..26b9756c985e2f37ef8ae8839b298d3af549c32d 100644
--- a/ecrire/public.php
+++ b/ecrire/public.php
@@ -107,9 +107,13 @@ if (defined("_INC_PUBLIC")) {
 		$page = surligner_mots($page, $var_recherche);
 	}
 
-	// Valider/indenter a la demande. garder la compatibilite tidy
+	// Valider/indenter a la demande.
 	if (trim($page) AND $xhtml AND $html AND !headers_sent()) {
-		if ($f = include_fonction(($xhtml === true) ? 'tidy' : $xhtml))
+		# Compatibilite ascendante
+		if ($xhtml === true) $xhtml ='tidy';
+		else if ($xhtml == 'spip_sax') $xhtml = 'sax';
+
+		if ($f = include_fonction($xhtml, 'inc'))
 			$page = $f($page);
 	}