diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php
index 37bd9389a60bb1f744fa0409542ee6993a700f2f..52f3c1432b40e3513deec88344d1f09545c0584b 100644
--- a/ecrire/inc_version.php
+++ b/ecrire/inc_version.php
@@ -289,19 +289,18 @@ $liste_des_forums = array(
 // Droits d'acces maximum par defaut
 @umask(0);
 
-// version de la base (= numero SVN de sa derniere modif)
+// version des signatures de fonctions PHP
+// (= numero SVN de leur derniere modif cassant la compatibilite)
+$spip_version_code = 11056;
+// version de la base SQL (= numero SVN de sa derniere modif)
 $spip_version = 11042;
-
 // version de l'interface a la base
 $spip_sql_version = 1;
 
 // version de spip en chaine
-// et en numerique a incrementer sur les evolutions qui cassent la compatibilite descendante
 // 1.xxyy : xx00 versions stables publiees, xxyy versions de dev
 // (ce qui marche pour yy ne marchera pas forcement sur une version plus ancienne)
-// type nouvelles fonctionnalites, deplacement de fonctions ...
 $spip_version_affichee = '1.9.3 dev';
-$spip_version_code = '1.9303';
 
 // ** Securite **
 $visiteur_session = $auteur_session = $connect_statut = $connect_toutes_rubriques =  $hash_recherche = $hash_recherche_strict = $ldap_present ='';
diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php
index 4e202624715fe4b6ae74ec8458b1cdcf621adc95..8ac3b3760c427d4c5b13978fd9ed4f276149e722 100644
--- a/ecrire/public/composer.php
+++ b/ecrire/public/composer.php
@@ -30,14 +30,7 @@ include_spip('public/interfaces');
 # Toutefois pour 2. et 3. preferer la technique de la surcharge
 
 // http://doc.spip.org/@public_composer_dist
-function public_composer_dist($squelette, $mime_type, $gram, $source, $connect) {
-
-	$nom = $mime_type . ($connect ?  "_$connect" : '') . '_'
-		. md5($GLOBALS['spip_version_code'].' * '.$squelette);
-
-	// si squelette est deja en memoire (INCLURE  a repetition)
-	if (function_exists($nom))
-		return $nom;
+function public_composer_dist($squelette, $nom, $gram, $source, $connect) {
 
 	$phpfile = sous_repertoire(_DIR_SKELS,'',false,true) . $nom . '.php';
 
diff --git a/ecrire/public/debug.php b/ecrire/public/debug.php
index 50ddef74ae5eec6da12659e86cceb7ae504b5fcf..eb6059db94d39937c859b26b42bd3b9b18d1d35f 100644
--- a/ecrire/public/debug.php
+++ b/ecrire/public/debug.php
@@ -229,7 +229,7 @@ function squelette_debug_compile($nom, $sourcefile, $code, $squelette) {
 // http://doc.spip.org/@boucle_debug
 function boucle_debug ($nom, $id_parent, $id, $type, $crit, $avant, $milieu, $apres, $altern) {
 	global $debug_objets;
-	$debug_objets['courant'] = $nom;
+
 	$debug_objets['parent'][$nom.$id] = $id_parent;
 	$debug_objets['pretty'][$nom.$id] = 
 		"BOUCLE$id($type)" . htmlspecialchars(
diff --git a/ecrire/public/parametrer.php b/ecrire/public/parametrer.php
index 04112aed3f526cfbb80eb9b6eef4f6fed3ddfd12..94ee8a5cbcb60f13b51364810a027bc629ad7018 100644
--- a/ecrire/public/parametrer.php
+++ b/ecrire/public/parametrer.php
@@ -297,18 +297,34 @@ function public_parametrer_dist($fond, $local='', $cache='', $connect='')  {
 	list($skel,$mime_type, $gram, $sourcefile) =
 		$styliser($fond, $id_rubrique_fond, $GLOBALS['spip_lang'], $connect);
 
-	// Charger le squelette en specifiant les langages cibles et source
+	// calcul du nom du squelette
+	$fonc = $mime_type . ($connect ?  "_$connect" : '') . '_'
+		. md5($GLOBALS['spip_version_code'].' * '.$skel);
+
+	$debug = (isset($GLOBALS['var_mode']) && ($GLOBALS['var_mode'] == 'debug'));
+	// sauver le nom de l'eventuel squelette en cours d'execution
+	// (recursion possible a cause des modeles)
+	$courant = $debug ? @$GLOBALS['debug_objets']['courant'] : '';
+
+	//  si pas deja en memoire (INCLURE  a repetition),
+	// charger le squelette en specifiant les langages cibles et source
 	// au cas il faudrait le compiler (source posterieure au resultat)
-	// et appliquer sa fonction principale sur le contexte.
-	// Passer le nom du cache pour produire sa destruction automatique
 
-	$composer = charger_fonction('composer', 'public');
+	if (!function_exists($fonc)) {
+
+		$composer = charger_fonction('composer', 'public');
 
-	// Le debugueur veut afficher le contexte
-	if (isset($GLOBALS['var_mode']) && ($GLOBALS['var_mode'] == 'debug'))
-		$GLOBALS['debug_objets']['contexte'][$sourcefile] = $local;
+		if ($debug) {
+			$GLOBALS['debug_objets']['contexte'][$sourcefile] = $local;
+			$GLOBALS['debug_objets']['courant'] = $fonc;
+		}
+		$fonc = $composer($skel, $fonc, $gram, $sourcefile, $connect);
+	}
+
+	// Appliquer le squelette compile' sur le contexte.
+	// Passer le nom du cache pour produire sa destruction automatique
 
-	if ($fonc = $composer($skel, $mime_type, $gram, $sourcefile, $connect)){
+	if ($fonc) {
 		spip_timer($a = 'calcul page '.rand(0,1000));
 		$notes = calculer_notes(); // conserver les notes...
 
@@ -329,7 +345,7 @@ function public_parametrer_dist($fond, $local='', $cache='', $connect='')  {
 			. join(', ',$info)
 			.' ('.strlen($page['texte']).' octets)'
 		);
-		if (isset($GLOBALS['var_mode']) && ($GLOBALS['var_mode'] == 'debug'))
+		if ($debug)
 			$GLOBALS['debug_objets']['profile'][$sourcefile] = $profile;
 
 		// Si #CACHE{} n'etait pas la, le mettre a $delais
@@ -339,9 +355,10 @@ function public_parametrer_dist($fond, $local='', $cache='', $connect='')  {
 	} else
 		$page = array();
 
-	if (isset($GLOBALS['var_mode']) && ($GLOBALS['var_mode'] == 'debug')) {
+	if ($debug) {
 		include_spip('public/debug');
 		debug_dumpfile (strlen($page['texte'])?$page['texte']:" ", $fonc, 'resultat');
+		$GLOBALS['debug_objets']['courant'] = $courant;
 	}
 	$page['contexte'] = $local;