diff --git a/ecrire/aide_index.php3 b/ecrire/aide_index.php3
index 02cc7ed5b5755020fdaf5505e541e9fdf171eb54..2cf6729a7de56cfcac65a39bb7eed285f2aa92cf 100644
--- a/ecrire/aide_index.php3
+++ b/ecrire/aide_index.php3
@@ -12,14 +12,6 @@
 
 define('_ECRIRE_AIDE', 1);
 include ("inc_version.php3");
-
-$nom = "aide_index";
-$f = find_in_path('inc_' . $nom . '.php');
-if ($f) 
-  include($f);
- else include_ecrire('inc_' . $nom . '.php');
-  
-if (function_exists($nom))
-  $nom($img, $frame, $aide, $var_lang, $lang);
-
+$var_f = include_fonction(basename($SCRIPT_NAME, _EXTENSION_PHP));
+$var_f($img, $frame, $aide, $var_lang, $lang);
 ?>
diff --git a/ecrire/ajax_page.php b/ecrire/ajax_page.php
index 863403a99a037ebed0eceef3c24b3a36826607ab..820c73b1f931441376161f6fd36d40e649f2897a 100644
--- a/ecrire/ajax_page.php
+++ b/ecrire/ajax_page.php
@@ -1,4 +1,5 @@
 <?php
+
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
@@ -10,36 +11,6 @@
 \***************************************************************************/
 
 include ("inc.php3");
-
-$var_nom = 'ajax_page';
-$var_f = find_in_path('inc_' . $var_nom . '.php');
-
-if ($var_f) 
-  include($var_f);
-else
-  include_ecrire($var_f = 'inc_' . $var_nom . '.php');
-
-# gerer un charset minimaliste en convertissant tout en unicode &#xxx;
-
-
-$var_nom = 'ajax_page_' . $fonction;
-if (!function_exists($var_nom))
-	spip_log("fonction $var_nom indisponible dans $var_f");
- else {
-	if ($flag_ob) {
-		ob_start();
-		$charset = lire_meta("charset");
-	}
-	@header('Content-type: text/html; charset=$charset');
-	echo "<"."?xml version='1.0' encoding='$charset'?".">\n";
-	$var_nom(intval($id), intval($exclus), intval($col), $id_ajax_fonc, $type, $rac);
-
-	if ($flag_ob) {
-	# fin gestion charset
-		$a = ob_get_contents();
-		ob_end_clean();
-		include_ecrire('inc_charsets.php3');
-		echo charset2unicode($a, 'AUTO', true);
-	}
-}
+$var_f = include_fonction(basename($SCRIPT_NAME, '.php'));
+$var_f($fonction, intval($id), intval($exclus), intval($col), $id_ajax_fonc, $type, $rac);
 ?>
diff --git a/ecrire/articles_page.php3 b/ecrire/articles_page.php3
index f4b06e19ea05a223e6440319d5cff576a8eb1d4b..2fe0d69a9d6849864202a92c72c7a464c539dffd 100644
--- a/ecrire/articles_page.php3
+++ b/ecrire/articles_page.php3
@@ -10,23 +10,7 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-
 include ("inc.php3");
-
-// prendre $var_* comme variables pour eviter les conflits avec les http_vars
-
-$var_nom = "articles_page";
-$var_f = find_in_path('inc_' . $var_nom . '.php');
-
-if ($var_f) 
-  include($var_f);
-else
-  include_ecrire('inc_' . $var_nom . '.php');
-
-if (function_exists($var_nom))
-  $var_nom($connect_id_auteur);
-elseif (function_exists($var_f = $var_nom . "_dist"))
-  $var_f($connect_id_auteur);
-else
-   spip_log("fonction $var_nom indisponible");
+$var_f = include_fonction(basename($SCRIPT_NAME, _EXTENSION_PHP));
+$var_f();
 ?>
diff --git a/ecrire/auteurs_edit.php3 b/ecrire/auteurs_edit.php3
index de6661a5ba061905724372adfbab84ed49b2360c..65b7c722181c1bd145cfb8e3c295420ea9c225a4 100644
--- a/ecrire/auteurs_edit.php3
+++ b/ecrire/auteurs_edit.php3
@@ -10,23 +10,8 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-include ("inc.php3");
-
-// prendre $var_* comme variables pour eviter les conflits avec les http_vars
-
-$var_nom = "auteurs_edit";
-$var_f = find_in_path('inc_' . $var_nom . '.php');
 
-if ($var_f) 
-  include($var_f);
- else
-   include_ecrire('inc_' . $var_nom . '.php');
-
-if (function_exists($var_nom))
-  $var_nom($id_auteur);
-elseif (function_exists($var_f = $var_nom . "_dist"))
-  $var_f($id_auteur);
-else
-   spip_log("fonction $var_nom indisponible");
+include ("inc.php3");
+$var_f = include_fonction(basename($SCRIPT_NAME, _EXTENSION_PHP));
+$var_f(intval($id_auteur));
 ?>
-
diff --git a/ecrire/breves.php3 b/ecrire/breves.php3
index cc5b8c682cf4e2e4e0c7756d59cf172b11fb89c8..2fe0d69a9d6849864202a92c72c7a464c539dffd 100644
--- a/ecrire/breves.php3
+++ b/ecrire/breves.php3
@@ -10,24 +10,7 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-
 include ("inc.php3");
-
-// prendre $var_* comme variables pour eviter les conflits avec les http_vars
-
-$var_nom = "breves";
-$var_f = find_in_path('inc_' . $var_nom . '.php');
-
-if ($var_f) 
-  include($var_f);
- else
-   include_ecrire('inc_' . $var_nom . '.php');
-
-if (function_exists($var_nom))
-  $var_nom();
-elseif (function_exists($var_f = $var_nom . "_dist"))
-  $var_f();
-else
-   spip_log("fonction $var_nom indisponible");
+$var_f = include_fonction(basename($SCRIPT_NAME, _EXTENSION_PHP));
+$var_f();
 ?>
-
diff --git a/ecrire/brouteur_frame.php3 b/ecrire/brouteur_frame.php3
index 88e6a96c20a88555cf0546b1e21e11bb2824b97d..bfbeb747d057c6cb7dfd0d5e26ea08153deb041c 100644
--- a/ecrire/brouteur_frame.php3
+++ b/ecrire/brouteur_frame.php3
@@ -10,23 +10,7 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-
 include ("inc.php3");
-
-// prendre $var_* comme variables pour eviter les conflits avec les http_vars
-
-$var_nom = "brouteur_frame";
-$var_f = find_in_path('inc_' . $var_nom . '.php');
-
-if ($var_f) 
-  include($var_f);
-else
-  include_ecrire('inc_' . $var_nom . '.php');
-
-if (function_exists($var_nom))
-  $var_nom($id_rubrique, $frame, $effacer_suivant, $special);
-elseif (function_exists($var_f = $var_nom . "_dist"))
-  $var_f($id_rubrique, $frame, $effacer_suivant, $special);
-else
-   spip_log("fonction $var_nom indisponible");
+$var_f = include_fonction(basename($SCRIPT_NAME, _EXTENSION_PHP));
+$var_f(intval($id_rubrique), $frame, $effacer_suivant, $special);
 ?>
diff --git a/ecrire/calendrier.php3 b/ecrire/calendrier.php3
index 7c390218b2bc8b7b866089bbffc6741946026bef..9ad7a50ad8743c717850c966ab9b704943643890 100644
--- a/ecrire/calendrier.php3
+++ b/ecrire/calendrier.php3
@@ -10,23 +10,7 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-
 include ("inc.php3");
-
-// prendre $var_* comme variables pour eviter les conflits avec les http_vars
-
-$var_nom = "calendrier";
-$var_f = find_in_path('inc_' . $var_nom . '.php');
-
-if ($var_f) 
-  include($var_f);
-else
-  include_ecrire('inc_' . $var_nom . '.php');
-
-if (function_exists($var_nom))
-  $var_nom($type, $css);
-elseif (function_exists($var_f = $var_nom . "_dist"))
-  $var_f($type, $css);
-else
-   spip_log("fonction $var_nom indisponible");
+$var_f = include_fonction(basename($SCRIPT_NAME, _EXTENSION_PHP));
+$var_f($type, $css);
 ?>
diff --git a/ecrire/calendrier_jour.php3 b/ecrire/calendrier_jour.php3
index 6d12502ae5747a3c66d51df03acbf139f0b43d31..f8cccbdb9e85269fc908961c1a63f90c1c0cbfb3 100644
--- a/ecrire/calendrier_jour.php3
+++ b/ecrire/calendrier_jour.php3
@@ -11,6 +11,7 @@
 \***************************************************************************/
 
 if (!isset($_GET['type'])) $type = 'jour';
-include ("calendrier.php3");
-exit;
+include ("inc.php3");
+$var_f = include_fonction('calendrier');
+$var_f($type, $css);
 ?>
diff --git a/ecrire/calendrier_semaine.php3 b/ecrire/calendrier_semaine.php3
index 43daa7e7caf5c81a9bb091eafdada45be755152f..c7fcb5c168c046dfc04b748556b33aa561c55b28 100644
--- a/ecrire/calendrier_semaine.php3
+++ b/ecrire/calendrier_semaine.php3
@@ -10,7 +10,9 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
+// script obsolete; present pour compatibilite
 if (!isset($_GET['type'])) $type = 'semaine';
-include ("calendrier.php3");
-exit;
+include ("inc.php3");
+$var_f = include_fonction('calendrier');
+$var_f($type, $css);
 ?>
diff --git a/ecrire/controle_forum.php3 b/ecrire/controle_forum.php3
index 1c5d8df639386d6a293d2c01b45ebd7ea2d2255e..5f384dbd2936ffc238bd8451ea26d4a262d8c7f7 100644
--- a/ecrire/controle_forum.php3
+++ b/ecrire/controle_forum.php3
@@ -10,15 +10,7 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-
 include ("inc.php3");
-
-$nom = "controle_forum";
-$f = find_in_path('inc_' . $nom . '.php');
-if ($f) 
-  include($f);
-else  include_ecrire('inc_' . $nom . '.php');
-if (function_exists($nom))
-  $nom($page, $debut, $debut_id_forum, $id_rubrique);
-
+$var_f = include_fonction(basename($SCRIPT_NAME, _EXTENSION_PHP));
+$var_f($page, $debut, $debut_id_forum, $id_rubrique);
 ?>
diff --git a/ecrire/export.php3 b/ecrire/export.php3
index c659617e33ad8dcd733b14cad9d56e8aee833874..2209dce791c702fabc80c96f5578515610b9344e 100644
--- a/ecrire/export.php3
+++ b/ecrire/export.php3
@@ -11,22 +11,6 @@
 \***************************************************************************/
 
 include ("inc_version.php3");
-
-// prendre $var_* comme variables pour eviter les conflits avec les http_vars
-
-$var_nom = "export";
-$var_f = find_in_path('inc_' . $var_nom . '.php');
-
-if ($var_f) 
-  include($var_f);
- // ATTENTION PHP3 ici
-else
-  include_ecrire('inc_' . $var_nom . '.php3');
-
-if (function_exists($var_nom))
-  $var_nom($id_rubrique, $maj);
-elseif (function_exists($var_f = $var_nom . "_dist"))
-  $var_f($id_rubrique, $maj);
-else
-   spip_log("fonction $var_nom indisponible");
+$var_f = include_fonction(basename($SCRIPT_NAME, _EXTENSION_PHP));
+$var_f(intval($id_rubrique), $maj);
 ?>
diff --git a/ecrire/forum.php3 b/ecrire/forum.php3
index d1196468fe7a10a0c52b2ad62384ce340d251476..4d208c0abf7d3258671bbf085b8d749bedd942cc 100644
--- a/ecrire/forum.php3
+++ b/ecrire/forum.php3
@@ -11,5 +11,7 @@
 \***************************************************************************/
 
   // obsolete, mais assurer le service pour les vieux liens
-include ("forum_admin.php3");
+include ("inc.php3");
+$var_f = include_fonction(basename('forum_admin'));
+$var_f($debut, $admin);
 ?>
diff --git a/ecrire/forum_admin.php3 b/ecrire/forum_admin.php3
index 2a58ef5c2f5fdb09a5b3ed6373ac304e2be47ad8..e1950e824c3ff27e8b8a9c139614635ddefc6b50 100644
--- a/ecrire/forum_admin.php3
+++ b/ecrire/forum_admin.php3
@@ -10,23 +10,7 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-
 include ("inc.php3");
-
-// prendre $var_* comme variables pour eviter les conflits avec les http_vars
-
-$var_nom = "forum_admin";
-$var_f = find_in_path('inc_' . $var_nom . '.php');
-
-if ($var_f) 
-  include($var_f);
-else 
-  include_ecrire('inc_' . $var_nom . '.php');
-
-if (function_exists($var_nom))
-  $var_nom($debut, $admin);
-elseif (function_exists($var_f = $var_nom . "_dist"))
-  $var_f($debut, $admin);
-else
-   spip_log("fonction $var_nom indisponible");
+$var_f = include_fonction(basename($SCRIPT_NAME, _EXTENSION_PHP));
+$var_f($debut, $admin);
 ?>
diff --git a/ecrire/inc_ajax_page.php b/ecrire/inc_ajax_page.php
index 9dc160a2cf33023ad7d837fa96ebdf858ffa47c6..45ca1d2756283aaeebf6ef31f1b1f7af978ffe01 100644
--- a/ecrire/inc_ajax_page.php
+++ b/ecrire/inc_ajax_page.php
@@ -10,6 +10,32 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
+# gerer un charset minimaliste en convertissant tout en unicode &#xxx;
+
+function ajax_page_dist($fonction, $id, $exclus, $col, $id_ajax_fonc, $type, $rac)
+{
+	global $flag_ob;
+	$var_nom = 'ajax_page_' . $fonction;
+	if (!function_exists($var_nom))
+		spip_log("fonction $var_nom indisponible");
+	else {
+		if ($flag_ob) {
+			ob_start();
+			$charset = lire_meta("charset");
+		}
+		@header('Content-type: text/html; charset=$charset');
+		echo "<"."?xml version='1.0' encoding='$charset'?".">\n";
+		$var_nom($id, $exclus, $col, $id_ajax_fonc, $type, $rac);
+
+		if ($flag_ob) {
+			$a = ob_get_contents();
+			ob_end_clean();
+			include_ecrire('inc_charsets.php3');
+			echo charset2unicode($a, 'AUTO', true);
+		}
+	}
+}
+
 # Une fonction stockee en base de donnees ?
 
 function ajax_page_sql($id, $exclus, $col, $id_ajax_fonc, $type, $rac)
diff --git a/ecrire/inc_articles_page.php b/ecrire/inc_articles_page.php
index bb75aa45b90126c3ad8b0aaf7bf29d8b88b20c55..5a232a82f2cf16be3f5564d0fe7bf294f63ada5a 100644
--- a/ecrire/inc_articles_page.php
+++ b/ecrire/inc_articles_page.php
@@ -17,9 +17,9 @@ include_ecrire("inc_texte.php3");
 include_ecrire("inc_urls.php3");
 include_ecrire("inc_rubriques.php3");
 
-function articles_page_dist($id_auteur)
+function articles_page_dist()
 {
-	global $connect_statut;
+  global $connect_statut, $connect_id_auteur;
 
 	debut_page(_T('titre_page_articles_page'), "documents", "articles");
 
@@ -51,7 +51,7 @@ debut_droite();
 echo "<P align=left>";
 afficher_articles(_T('info_en_cours_validation'),
 	", spip_auteurs_articles AS lien ".
-	"WHERE articles.id_article=lien.id_article AND lien.id_auteur=$id_auteur AND articles.statut='prepa' ORDER BY articles.date DESC");
+	"WHERE articles.id_article=lien.id_article AND lien.id_auteur=$connect_id_auteur AND articles.statut='prepa' ORDER BY articles.date DESC");
 echo "</p>";
 
 
@@ -63,7 +63,7 @@ echo "</p>";
 echo "<p>";
 afficher_articles(_T('info_attente_validation'),
 	", spip_auteurs_articles AS lien ".
-	"WHERE articles.id_article=lien.id_article AND lien.id_auteur=$id_auteur AND articles.statut='prop' ORDER BY articles.date");
+	"WHERE articles.id_article=lien.id_article AND lien.id_auteur=$connect_id_auteur AND articles.statut='prop' ORDER BY articles.date");
 echo "</p>";
 
 //
@@ -73,7 +73,7 @@ echo "</p>";
 echo "<p>";
 afficher_articles(_T('info_publies'),
 	", spip_auteurs_articles AS lien ".
-	"WHERE articles.id_article=lien.id_article AND lien.id_auteur=\"$id_auteur\" AND articles.statut='publie' ORDER BY articles.date DESC", true);
+	"WHERE articles.id_article=lien.id_article AND lien.id_auteur=\"$connect_id_auteur\" AND articles.statut='publie' ORDER BY articles.date DESC", true);
 echo "</p>";
 
 //
@@ -83,7 +83,7 @@ echo "</p>";
 echo "<p>";
 afficher_articles(_T('info_refuses'),
 	", spip_auteurs_articles AS lien ".
-	"WHERE articles.id_article=lien.id_article AND lien.id_auteur=\"$id_auteur\" AND articles.statut='refuse' ORDER BY articles.date DESC");
+	"WHERE articles.id_article=lien.id_article AND lien.id_auteur=\"$connect_id_auteur\" AND articles.statut='refuse' ORDER BY articles.date DESC");
 echo "</p>";
 
 fin_page();
diff --git a/ecrire/inc_brouteur_frame.php b/ecrire/inc_brouteur_frame.php
index 77a8185c52b3426b2eda9db275ce36cc9a8dafd8..91e82209cb316012081ee0c4a855a70f85fd6039 100644
--- a/ecrire/inc_brouteur_frame.php
+++ b/ecrire/inc_brouteur_frame.php
@@ -82,7 +82,7 @@ function brouteur_frame_dist($id_rubrique, $frame, $effacer_suivant, $special)
 
 	}
 	else {
-	  if (isset($id_rubrique) && ($id_rubrique !== ''))
+	  if ($id_rubrique)
  {
 
 		$query = "SELECT * FROM spip_rubriques WHERE id_rubrique='$id_rubrique' ORDER BY 0+titre, titre";
diff --git a/ecrire/inc_presentation.php3 b/ecrire/inc_presentation.php3
index 8677b56f4d069b18831a9fbb5c9abc029cbf4ca4..dff34eedfe40bdf314106323235e59031fb0b7ae 100644
--- a/ecrire/inc_presentation.php3
+++ b/ecrire/inc_presentation.php3
@@ -1209,7 +1209,7 @@ function afficher_breves($titre_table, $requete, $affrub=false) {
 			$vals[] = puce_statut_breve($id_breve, $statut, 'breve', ($droit && acces_rubrique($id_rubrique)), $id_rubrique);
 
 			$s = "<div>";
-			$s .= "<a href='breves_voir.php3?id_breve=$id_breve'$dir_lang style=\"display:block;\">";
+			$s .= "<a href='breves_voir.php3?id_breve=$id_breve' style=\"display:block;\">";
 
 			if ($spip_display != 1 AND $spip_display != 4 AND lire_meta('image_process') != "non") {
 				include_ecrire("inc_logos.php3");
diff --git a/ecrire/inc_statistiques_repartition.php b/ecrire/inc_statistiques_repartition.php
index 00e0ef5fa4f4b83052d6a6b1ebd6c11be0a560e0..28ca37408618931ccb2da3b44a781230a5d8c5ef 100644
--- a/ecrire/inc_statistiques_repartition.php
+++ b/ecrire/inc_statistiques_repartition.php
@@ -12,6 +12,11 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
+include_ecrire("inc_presentation.php3");
+include_ecrire("inc_texte.php3");
+include_ecrire("inc_urls.php3");
+include_ecrire("inc_rubriques.php3");
+
 function enfants($id_parent, $critere){
 	global $nombre_vis;
 
diff --git a/ecrire/inc_version.php3 b/ecrire/inc_version.php3
index fd3a04f262591ad3723614c42da14ea558c3e2c7..62f344f19f41f26980b205de5ee0cc74ac3cc89b 100644
--- a/ecrire/inc_version.php3
+++ b/ecrire/inc_version.php3
@@ -54,6 +54,38 @@ function include_ecrire($file) {
 	else spip_log($file . " illisble");
 }
 
+function include_fonction($nom) {
+# Hack pour etre compatible avec les mes_options qui appellent cette fonction
+	define_once('_DIR_INCLUDE', _DIR_RESTREINT);
+	$inc = ('inc_' . $nom . '.php');
+	$f = find_in_path($inc);
+	if ($f && (!$GLOBALS['included_files'][$f]++) && is_readable($f))
+		include($f);
+	else {
+		$f = _DIR_INCLUDE . $inc;
+		if ((!$GLOBALS['included_files'][$f]++) && is_readable($f))
+			include($f);
+		else {
+		  // provisoire avant renommage php/php3
+			$f = _DIR_INCLUDE . ('inc_' . $nom . '.php3');
+			if ((!$GLOBALS['included_files'][$f]++) && is_readable($f))
+				include($f);
+			else {
+			  spip_log($inc . " inconnu");
+			// esperons qu'elle est dans les fichiers deja lus
+			  return $nom;
+			}
+		}
+	}
+	if (function_exists($nom))
+		return $nom;
+	elseif (function_exists($nom .= "_dist"))
+		return $nom;
+	else {
+		spip_log("fonction $var_nom indisponible");
+		exit;
+	}
+}
 
 // *********** traiter les variables ************
 
diff --git a/ecrire/js_menu_rubriques.php b/ecrire/js_menu_rubriques.php
index 1dc14a29f2f416cba21bfd4abbfe26e8d12aa853..1c2e73147b6811f4336a4598f47ca039127ae33b 100644
--- a/ecrire/js_menu_rubriques.php
+++ b/ecrire/js_menu_rubriques.php
@@ -10,23 +10,7 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-
 include ("inc.php3");
-
-// prendre $var_* comme variables pour eviter les conflits avec les http_vars
-
-$var_nom = "js_menu_rubriques";
-$var_f = find_in_path('inc_' . $var_nom . '.php');
-
-if ($var_f) 
-  include($var_f);
-else 
-  include_ecrire('inc_' . $var_nom . '.php');
-
-if (function_exists($var_nom))
-	$var_nom();
-elseif (function_exists($var_f = $var_nom . "_dist"))
-	$var_f();
-else spip_log("fonction $var_nom indisponible");
-
+$var_f = include_fonction(basename($SCRIPT_NAME, '.php'));
+$var_f();
 ?>
diff --git a/ecrire/messagerie.php3 b/ecrire/messagerie.php3
index 4cde5f9c2a581d52297566384f21181f022f4a96..84ce57a60b7b980a6f574e8809464460811aa00c 100644
--- a/ecrire/messagerie.php3
+++ b/ecrire/messagerie.php3
@@ -10,21 +10,7 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-
 include ("inc.php3");
-
-$var_nom = "messagerie";
-$var_f = find_in_path('inc_' . $var_nom . '.php');
-
-if ($var_f) 
-        include($var_f);
-else
-  include_ecrire('inc_' . $var_nom . '.php');
-
-if (function_exists($var_nom))
-        $var_res = $var_nom($id_message, $detruire_message, $supp_dest);
-elseif (function_exists($var_f = $var_nom . "_dist"))
-        $var_res = $var_f($id_message, $detruire_message, $supp_dest);
-else {spip_log("fonction $var_nom indisponible dans $var_f");}
-
+$var_f = include_fonction(basename($SCRIPT_NAME, _EXTENSION_PHP));
+$var_f(intval($id_message), intval($detruire_message), $supp_dest);
 ?>
diff --git a/ecrire/naviguer.php3 b/ecrire/naviguer.php3
index 1a331c1ce7de4c47ea735f3f5d4a44e6747e87d9..b08c938ff3238ac6cbe07aad803131d9256dbce0 100644
--- a/ecrire/naviguer.php3
+++ b/ecrire/naviguer.php3
@@ -11,21 +11,6 @@
 \***************************************************************************/
 
 include ("inc.php3");
-
-// prendre $var_* comme variables pour eviter les conflits avec les http_vars
-
-$var_nom = "naviguer";
-$var_f = find_in_path('inc_' . $var_nom . '.php');
-
-if ($var_f) 
-  include($var_f);
-else
-  include_ecrire('inc_' . $var_nom . '.php');
-
-if (function_exists($var_nom))
-  $var_nom($action);
-elseif (function_exists($var_f = $var_nom . "_dist"))
-  $var_f($action);
-else
-   spip_log("fonction $var_nom indisponible");
+$var_f = include_fonction(basename($SCRIPT_NAME, _EXTENSION_PHP));
+$var_f($action);
 ?>
diff --git a/ecrire/statistiques_repartition.php b/ecrire/statistiques_repartition.php
index a9a44df21e8215dce2603a8bdbb031525a7189c1..dadc17ce486ae687d5a0036a7df99cb677c49094 100644
--- a/ecrire/statistiques_repartition.php
+++ b/ecrire/statistiques_repartition.php
@@ -1,6 +1,5 @@
 <?php
 
-
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
@@ -11,27 +10,7 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-
 include ("inc.php3");
-include_ecrire("inc_presentation.php3");
-include_ecrire("inc_texte.php3");
-include_ecrire("inc_urls.php3");
-include_ecrire("inc_rubriques.php3");
-
-// prendre $var_* comme variables pour eviter les conflits avec les http_vars
-
-$var_nom = "statistiques_repartition";
-$var_f = find_in_path('inc_' . $var_nom . '.php');
-
-if ($var_f) 
-  include($var_f);
-else include_ecrire('inc_' . $var_nom . '.php');  
-
-if (function_exists($var_nom))
-  $var_nom($critere);
-elseif (function_exists($var_f = $var_nom . "_dist"))
-  $var_f($critere);
-else
-   spip_log("fonction $var_nom indisponible");
+$var_f = include_fonction(basename($SCRIPT_NAME, '.php'));
+$var_f($critere);
 ?>
-
diff --git a/ecrire/synchro.php3 b/ecrire/synchro.php3
index b763972d358bd4b96f70dbfd074a52d98ad8f4d6..2fe0d69a9d6849864202a92c72c7a464c539dffd 100644
--- a/ecrire/synchro.php3
+++ b/ecrire/synchro.php3
@@ -11,21 +11,6 @@
 \***************************************************************************/
 
 include ("inc.php3");
-
-// prendre $var_* comme variables pour eviter les conflits avec les http_vars
-
-$var_nom = "synchro";
-$var_f = find_in_path('inc_' . $var_nom . '.php');
-
-if ($var_f) 
-  include($var_f);
-else
-  include_ecrire('inc_' . $var_nom . '.php');
-
-if (function_exists($var_nom))
-	$var_nom();
-elseif (function_exists($var_f = $var_nom . "_dist"))
-	$var_f();
-else spip_log("fonction $var_nom indisponible");
-
+$var_f = include_fonction(basename($SCRIPT_NAME, _EXTENSION_PHP));
+$var_f();
 ?>