diff --git a/ecrire/action/editer_rubrique.php b/ecrire/action/editer_rubrique.php
index 608741ed2323b82e3c63341b5fb59347402c77b7..571cfaf54729c528e41103589b2958763c3da59a 100644
--- a/ecrire/action/editer_rubrique.php
+++ b/ecrire/action/editer_rubrique.php
@@ -69,7 +69,7 @@ function revisions_rubriques($id_rubrique, $c=false) {
 	// qu'on n'administre pas.
 	$statut_ancien = $parent = '';
 	if (NULL !== ($id_parent = _request('id_parent', $c))) {
-		include_spip('inc_rubrique');
+
 		$id_parent = intval($id_parent);
 		$filles = calcul_branche($id_rubrique);
 		if (strpos(",$id_parent',", "$,filles,") != false)
diff --git a/ecrire/base/connect_sql.php b/ecrire/base/connect_sql.php
index b6a7b4629f7cb2a7f13e529a64531d6ceb263cb7..61e85963afd93ae7be4f6408a3292f6535c75947 100644
--- a/ecrire/base/connect_sql.php
+++ b/ecrire/base/connect_sql.php
@@ -61,10 +61,11 @@ function spip_connect($serveur='', $version='') {
 	$type = $GLOBALS['db_ok']['type'];
 	$jeu = 'spip_' . $type .'_functions_' . $version;
 	if (!isset($GLOBALS[$jeu])) {
-		if (!include_spip($type . '_' . $version, 'req'))
+		if (!find_in_path($type . '_' . $version . '.php', 'req/', true)){
 			spip_log("spip_connect: serveur $index version '$version' non defini par $jeu.");
-		// ne plus reessayer 
-		return $connexions[$index][$version] = array();
+			// ne plus reessayer 
+			return $connexions[$index][$version] = array();
+		}
 	}
 	$connexions[$index][$version] = $GLOBALS[$jeu];
 	if ($old) return $connexions[$index];
diff --git a/ecrire/base/import_all.php b/ecrire/base/import_all.php
index a751df904adc8f20e195f167439b8330efccdbd2..1e4a184e51a59d6ad53026ebddd0a94c8f90bac9 100644
--- a/ecrire/base/import_all.php
+++ b/ecrire/base/import_all.php
@@ -32,7 +32,7 @@ else{
 
 // NB: Ce fichier peut ajouter des tables (old-style)
 // donc il faut l'inclure "en globals"
-if ($f = include_spip('mes_fonctions', false)) {
+if ($f = find_in_path('mes_fonctions.php')) {
 	global $dossier_squelettes;
 	@include_once ($f); 
 }
diff --git a/ecrire/exec/aide_index.php b/ecrire/exec/aide_index.php
index e2c38d1912aa2d2487e36e42f02b22ad5e9e40b1..ac95c6337fca7daee5b637a4a831db14951928b2 100644
--- a/ecrire/exec/aide_index.php
+++ b/ecrire/exec/aide_index.php
@@ -13,7 +13,7 @@
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/headers');
-include_spip("inc/texte");
+include_spip('inc/texte');
 include_spip('inc/layer');
 
 /////////////////////////////
diff --git a/ecrire/exec/breves_edit.php b/ecrire/exec/breves_edit.php
index dba029e6863573e00b30c4fc354e228242a0334b..e348df2e44ead6f2000d5f2540081955dca46532 100644
--- a/ecrire/exec/breves_edit.php
+++ b/ecrire/exec/breves_edit.php
@@ -14,7 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/presentation');
 include_spip('inc/documents');
-include_spip ('inc/barre');
+include_spip('inc/barre');
 
 // http://doc.spip.org/@exec_breves_edit_dist
 function exec_breves_edit_dist()
diff --git a/ecrire/exec/breves_voir.php b/ecrire/exec/breves_voir.php
index 9d2eb84f70d8ef43c664fe9514353c0858a2af3d..5f0d2e85c4c9314010457200a30b5004face539d 100644
--- a/ecrire/exec/breves_voir.php
+++ b/ecrire/exec/breves_voir.php
@@ -14,7 +14,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/presentation');
 include_spip('inc/actions');
-include_spip("inc/indexation");
 
 // http://doc.spip.org/@exec_breves_voir_dist
 function exec_breves_voir_dist()
diff --git a/ecrire/inc/charsets.php b/ecrire/inc/charsets.php
index 6421e82482e65870f7edc7ac8e0176bb4a13a892..7d5db867621ecb23830a557a9a5bf4cba2cc0712 100644
--- a/ecrire/inc/charsets.php
+++ b/ecrire/inc/charsets.php
@@ -42,7 +42,7 @@ function load_charset ($charset = 'AUTO', $langue_site = 'AUTO') {
 	else if ($charset == 'windows-1251') $charset = 'cp1251';
 	else if ($charset == 'windows-1256') $charset = 'cp1256';
 
-	if (include_spip('charsets/'.$charset)) {
+	if (find_in_path($charset . '.php', 'charsets/', true)) {
 		return $charset;
 	} else {
 		spip_log("Erreur: pas de fichier de conversion 'charsets/$charset'");
diff --git a/ecrire/inc/export.php b/ecrire/inc/export.php
index c12ff600497d685e51790f4a6175234025db2328..934b426b9911790d0f22b0ea6a2aa0f720c6686e 100644
--- a/ecrire/inc/export.php
+++ b/ecrire/inc/export.php
@@ -18,10 +18,11 @@ include_spip('public/interfaces'); // pour table_jointures
 $GLOBALS['version_archive'] = '1.3';
 // NB: Ce fichier peut ajouter des tables (old-style)
 // donc il faut l'inclure "en globals"
-if ($f = include_spip('mes_fonctions', false)) {
+if ($f = find_in_path('mes_fonctions.php')) {
 	global $dossier_squelettes;
 	@include_once ($f); 
 }
+
 if (@is_readable(_DIR_TMP."charger_plugins_fonctions.php")){
 	// chargement optimise precompile
 	include_once(_DIR_TMP."charger_plugins_fonctions.php");
diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php
index 57e09a55049e0888683d766908577514bb9a438d..aff2061a7338de3d212700a01fb885475bdbf45c 100644
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -14,7 +14,7 @@
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/charsets');
-// signaler les filtres ayant besoin d'inclue inc/filtres_images
+// signaler les filtres ayant besoin d'inclure inc/filtres_images
 
 $GLOBALS['spip_matrice']['image_valeurs_trans'] = '';
 $GLOBALS['spip_matrice']['image_reduire'] = '';
@@ -71,12 +71,10 @@ function appliquer_filtre($arg, $filtre) {
 	return $f($arg);
 }
 
-// Appliquer un filtre (eventuellement defini dans la matrice) aux donnees
-// et arguments
+// Appliquer un filtre de la matrice
 // http://doc.spip.org/@filtrer
 function filtrer($filtre) {
-	if (isset($GLOBALS['spip_matrice'][$filtre]))
-		include_spip('inc/filtres_images');
+	include_spip('inc/filtres_images');
 
 	$tous = func_get_args();
 	if (substr($filtre,0,6)=='image_')
@@ -303,7 +301,7 @@ function proteger_amp($texte){
 // http://doc.spip.org/@entites_html
 function entites_html($texte, $tout=false) {
 	if (!$texte) return $texte;
-	include_spip("inc/texte");
+	include_spip('inc/texte');
 	$texte = htmlspecialchars(echappe_retour(echappe_html($texte,'',true),'','proteger_amp'));
 	if ($tout)
 		return corriger_toutes_entites_html($texte);
@@ -315,7 +313,6 @@ function entites_html($texte, $tout=false) {
 // http://doc.spip.org/@filtrer_entites
 function filtrer_entites($texte) {
 	if (strpos($texte,'&') === false) return $texte;
-#	include_spip('inc/charsets');
 	// filtrer
 	$texte = html2unicode($texte);
 	// remettre le tout dans le charset cible
@@ -1631,7 +1628,7 @@ function barre_textarea($texte, $rows, $cols, $lang='') {
 		return "<textarea name='texte' rows='$rows' class='forml' cols='$cols'>$texte</textarea>";
 
 	$num_textarea++;
-	include_spip ('inc/barre');
+	include_spip('inc/barre');
 	return afficher_barre("document.getElementById('textarea_$num_textarea')", true, $lang) .
 	  "
 <textarea name='texte' rows='$rows' class='forml' cols='$cols'
diff --git a/ecrire/inc/filtres_images.php b/ecrire/inc/filtres_images.php
index f13bb95b1e637949057f560501aa4b4e9b31f8f8..2ace4c99260b24386c315d40ff20d87ce5f5fc2c 100644
--- a/ecrire/inc/filtres_images.php
+++ b/ecrire/inc/filtres_images.php
@@ -61,7 +61,7 @@ function image_valeurs_trans($img, $effet, $forcer_format = false, $fonction_cre
 
 	// les protocoles web prennent au moins 3 lettres
 	if (preg_match(';^(\w{3,7}://);', $source)){
-		include_spip("inc/distant");
+		include_spip('inc/distant');
 		$fichier = _DIR_RACINE . copie_locale($source);
 		if (!$fichier) return "";
 	} else 	$fichier = $source;
@@ -2018,7 +2018,7 @@ function image_aplatir($im, $format='jpg', $coul='000000', $qualite=NULL)
 
 	if (!$image) return("");
 
-	include_spip("filtres");
+	include_spip('inc/filtres');
 	$couleurs = couleur_hex_to_dec($coul);
 	$dr= $couleurs["red"];
 	$dv= $couleurs["green"];
@@ -2317,7 +2317,6 @@ function couleur_eclaircir_si_foncee ($couleur) {
 function couleur_saturation($couleur, $val) {
 	if ($couleur == "ffffff") $couleur = "eeeeee";
 
-	include_spip("inc/filtres_images");
 	$couleurs = couleur_hex_to_dec($couleur);
 	$r= 255 - $couleurs["red"];
 	$g= 255 - $couleurs["green"];
diff --git a/ecrire/inc/import.php b/ecrire/inc/import.php
index 36f44dda8e4012df0a9dbd11f6f265786ed550b0..c51c76e6339cb8a9dc1bd87f78d58700b0aa1537 100644
--- a/ecrire/inc/import.php
+++ b/ecrire/inc/import.php
@@ -18,10 +18,11 @@ include_spip('base/abstract_sql');
 
 // NB: Ce fichier peut ajouter des tables (old-style)
 // donc il faut l'inclure "en globals"
-if ($f = include_spip('mes_fonctions', false)) {
+if ($f = find_in_path('mes_fonctions.php')) {
 	global $dossier_squelettes;
 	@include_once ($f); 
 }
+
 if (@is_readable(_DIR_TMP."charger_plugins_fonctions.php")){
 	// chargement optimise precompile
 	include_once(_DIR_TMP."charger_plugins_fonctions.php");
diff --git a/ecrire/inc/install.php b/ecrire/inc/install.php
index 099aebe74606269b02e35f42ce87ccf38b3024d8..34ab70ff39eb065bb0cbfa8ac8f1b439a7ab4e40 100644
--- a/ecrire/inc/install.php
+++ b/ecrire/inc/install.php
@@ -210,7 +210,7 @@ function install_connexion_form($db, $login, $pass, $predef, $hidden, $etape)
 	$pg = function_exists('pg_connect');
 	$mysql = function_exists('mysql_connect');
 	// demander les version dispo de sqlite
-	include_spip("req/sqlite_generique");
+	include_spip('req/sqlite_generique');
 	$versions = spip_versions_sqlite();
 	$sqlite2 = in_array(2, $versions);
 	$sqlite3 = in_array(3, $versions);
diff --git a/ecrire/inc/lang.php b/ecrire/inc/lang.php
index 58c3b63e78a436f44d64b702734c46b0a77f2cfb..0907c8cc3f0c887ef24d2ffc6971270a84654be5 100644
--- a/ecrire/inc/lang.php
+++ b/ecrire/inc/lang.php
@@ -263,7 +263,7 @@ function repertoire_lang($module='spip', $lang='fr') {
 		return _DIR_LANG;
 
 	# regarder s'il existe une v.f. qq part
-	if ($f = include_spip('lang/'.$module.'_'.$lang, false))
+	if ($f = find_in_path($module.'_'.$lang . '.php', 'lang/'))
 		return dirname($f).'/';
 
 	# sinon, je ne sais trop pas quoi dire...
diff --git a/ecrire/inc/traduire.php b/ecrire/inc/traduire.php
index 841fc185b83ae083a66e475259de7c86be3f7d6d..76d6be4fc938a13d59cb59915daf601da3e271d4 100644
--- a/ecrire/inc/traduire.php
+++ b/ecrire/inc/traduire.php
@@ -21,12 +21,12 @@ function chercher_module_lang($module, $lang = '') {
 		$lang = '_'.$lang;
 
 	// 1) dans un repertoire nomme lang/ se trouvant sur le chemin
-	if ($f = include_spip('lang/'.$module.$lang, false))
+	if ($f = find_in_path($module.$lang.'.php', 'lang/'))
 		return $f;
 
 	// 2) directement dans le chemin (old style, uniquement pour local)
 	return ($module == 'local')
-		? include_spip($module.$lang, false)
+		? find_in_path('local'.$lang. '.php')
 		: '';
 }
 
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 89de11e7fb0b9311c24824739053da68caa581f0..78c68db4baf288664565921536815944735e6992 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -524,11 +524,6 @@ function texte_script($texte) {
 	return str_replace('\'', '\\\'', str_replace('\\', '\\\\', $texte));
 }
 
-//
-// find_in_path() : chercher un fichier nomme x selon le chemin rep1:rep2:rep3
-//
-
-
 // la fonction _chemin ajoute un repertoire au chemin courant si un repertoire lui est passe en parametre
 // retourne le chemin courant sinon, sous forme de array
 // seul le dossier squelette peut etre modifie en dehors de cette fonction, pour raison historique
@@ -605,26 +600,13 @@ function creer_chemin() {
 	return $path_a;
 }
 
-/*
-// Cette fonction est appelee une seule fois par hit et par dir du chemin
-// http://doc.spip.org/@memoriser_fichiers
-function memoriser_fichiers($dir) {
-	$fichiers = array();
-
-	if ($dir === '') $dir = '.';
-
-	if (@is_dir($dir)
-	AND $t = @opendir($dir)) {
-		while (($f = readdir($t)) !== false) {
-			$fichiers[$f] = true;
-		}
-	}
-	return $fichiers;
-}
-*/
+//
+// chercher un fichier $file dans le SPIP_PATH
+// si on donne un sous-repertoire en 2e arg optionnel, il FAUT le / final
+// si 3e arg vrai, on inclut si ce n'est fait.
 
 // http://doc.spip.org/@find_in_path
-function find_in_path ($file, $dirname='') {
+function find_in_path ($file, $dirname='', $include=false) {
 	static $files=array(), $dirs=array();
 
 	$a = strrpos($file,'/');
@@ -633,14 +615,18 @@ function find_in_path ($file, $dirname='') {
 		$file = substr($file, $a);
 	}
 
-	if (isset($files[$dirname][$file])) return $files[$dirname][$file];
-
+	if (isset($files[$dirname][$file])) {
+		if ($include) include_once $files[$dirname][$file];
+		return  $files[$dirname][$file];
+	}
 	foreach(creer_chemin() as $dir) {
 		if (!isset($dirs[$a = $dir . $dirname]))
 			$dirs[$a] = is_dir($a);
 		if ($dirs[$a]) {
-			if (is_readable($a .= $file))
+			if (is_readable($a .= $file)) {
+				if ($include) include_once $a;
 				return $files[$dirname][$file] = $a;
+			}
 		}
 	}
 }
@@ -694,10 +680,10 @@ function charger_generer_url() {
 		// fichier inc-urls ? (old style)
 		if (@is_readable($f = _DIR_RACINE.'inc-urls.php3')
 		OR @is_readable($f = _DIR_RACINE.'inc-urls.php')
-		OR $f = find_in_path('inc-urls-'.$GLOBALS['type_urls'].'.php3')
-		OR $f = include_spip('urls/'.$GLOBALS['type_urls'], false)
-		)
+		OR $f = find_in_path('inc-urls-'.$GLOBALS['type_urls'].'.php3'))
 			include_once($f);
+
+		else include_spip('urls/'.$GLOBALS['type_urls']);
 	}
 }
 
diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php
index 34127ef6d7245a26c75ab6c8b6f40647c639d090..9a314706d0013bb1bf17d0f36232eecbab515ae6 100644
--- a/ecrire/public/compiler.php
+++ b/ecrire/public/compiler.php
@@ -831,8 +831,8 @@ function " . $nom . '($Cache, $Pile, $doublons=array(), $Numrows=array(), $SP=0)
 	$connect = ' .
 	_q($connect) . ';
 	$page = ' .
-	// ATTENTION, le calcul du l'expression $corps affectera $Cache
-	// c'est pourquoi on l'affecte a cette variable auxiliaire
+	// ATTENTION, le calcul de l'expression $corps affectera $Cache
+	// c'est pourquoi on l'affecte a la variable auxiliaire $page. 
 	// avant de referencer $Cache
 	$corps . ";
 
diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php
index bfd9797396064ea8d2243da30019c8af499c6d29..3af2adfef704cd7b1dc4eb8868bf936af5be84ca 100644
--- a/ecrire/public/composer.php
+++ b/ecrire/public/composer.php
@@ -247,7 +247,7 @@ function argumenter_squelette($v) {
 // verifier leurs arguments et filtres, et calculer le code a inclure
 // http://doc.spip.org/@executer_balise_dynamique
 function executer_balise_dynamique($nom, $args, $filtres, $lang, $ligne) {
-	if (!$file = include_spip('balise/' . strtolower($nom)))
+	if (!$file = find_in_path(strtolower($nom) .'.php', 'balise/', true))
 		die ("pas de balise dynamique pour #". strtolower($nom)." !");
 
 	// Y a-t-il une fonction de traitement filtres-arguments ?