diff --git a/ecrire/action/autoriser.php b/ecrire/action/autoriser.php
index 2c6fc147531b94e1e10833a2d865690f1fac880d..98758c15095299d2456a729926f1ee842a30cc5e 100644
--- a/ecrire/action/autoriser.php
+++ b/ecrire/action/autoriser.php
@@ -59,7 +59,7 @@ if (!$auth_login && !$refus) {
     spip_log("Acces refuse ($refus) au document " . $arg . ': ' . $file);
     global $fond;
     $fond = 404;
-    include _DIR_INCLUDE.'public.php';
+    include _DIR_RESTREINT . 'public.php';
   }
   else
     {
diff --git a/ecrire/exec/aide_index.php b/ecrire/exec/aide_index.php
index 187be7eb24f94680151123cc6a9963d0453c14e4..906ac60669929f4cb530e98dc6527e4ae3987672 100644
--- a/ecrire/exec/aide_index.php
+++ b/ecrire/exec/aide_index.php
@@ -44,8 +44,8 @@ function help_frame ($aide) {
 // Erreur aide non disponible
 function erreur_aide_indisponible() {
 	global $help_server;
-	install_debut_html(_T('forum_titre_erreur')); echo "<div>$help_server: "._T('aide_non_disponible')."</div><div align='right'>".menu_langues('var_lang_ecrire')."</div>";install_fin_html();
-	exit;
+	minipres(_T('forum_titre_erreur'),
+		 "<div>$help_server: "._T('aide_non_disponible')."</div><div align='right'>".menu_langues('var_lang_ecrire')."</div>");
 }
 
 // Selection de l'aide correspondant a la langue demandee
@@ -55,7 +55,7 @@ function fichier_aide($lang_aide = '') {
 	if (!$lang_aide) $lang_aide = $GLOBALS['spip_lang'];
 	$fichier_aide = _DIR_CACHE . "aide-$lang_aide-aide.html";
 	$lastm = @filemtime($fichier_aide);
-	$lastversion = @filemtime(_DIR_INCLUDE . 'inc_version.php');
+	$lastversion = @filemtime(_DIR_RESTREINT . 'inc_version.php');
 
 	// en cache et a jour ?
 	if (@is_readable($fichier_aide) AND ($lastm >= $lastversion)) {
diff --git a/ecrire/inc/lang.php b/ecrire/inc/lang.php
index 917d69f037b74d29d17d4dd55901b887d95605eb..96a100b8feaffae05cb6e3a7c04d7af73b9ac233 100644
--- a/ecrire/inc/lang.php
+++ b/ecrire/inc/lang.php
@@ -431,7 +431,7 @@ function repertoire_lang($module='spip', $lang='fr') {
 		return dirname($f).'/';
 
 	# sinon, je ne sais trop pas quoi dire...
-	return _DIR_INCLUDE.'lang/';
+	return _DIR_RESTREINT . 'lang/';
 }
 
 //
diff --git a/ecrire/inc/minipres.php b/ecrire/inc/minipres.php
index ea786502f96181e298135c0801cd9116f1a0c8e3..8f166e40f64f6f9c255067f97323a0214601a6f0 100644
--- a/ecrire/inc/minipres.php
+++ b/ecrire/inc/minipres.php
@@ -46,7 +46,7 @@ function install_debut_html($titre = 'AUTO') {
 	  "\n\n]]>\n--></style>\n\n
 </head>
 <body bgcolor='#FFFFFF' text='#000000' link='#E86519' vlink='#6E003A' alink='#FF9900'>
-<center><table style='margin-top:50px; width: 450px'>
+<table style='margin-top:50px; width: 450px;' align='center'>
 <tr><th style='color: #970038;text-align: left;font-family: Verdana; font-weigth: bold; font-size: 18px'>",
 	  $titre ,
 	  "</th></tr>
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 05e13e787571c2b65a30c5b083527c457a7ba14a..3b5452e76850c346575daad75f8ad1a777eeb729 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -18,9 +18,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 # fonction obsolete, assurant la compatilibite ascendante. cf include_spip
 function include_ecrire($file, $silence=false) {
-# Hack pour etre compatible avec les mes_options qui appellent cette fonction
-	if (!defined('_DIR_INCLUDE'))
-		define('_DIR_INCLUDE', _DIR_RESTREINT);
 	preg_match('/^((inc_)?([^.]*))(\.php[3]?)?$/', $file, $r);
 
 	// Version new style, surchargeable
@@ -34,7 +31,7 @@ function include_ecrire($file, $silence=false) {
 		return $f;
 
 	// fichiers old-style, ecrire/inc_truc.php
-	if (is_readable($f = _DIR_INCLUDE . $r[1] . '.php'))
+	if (is_readable($f = _DIR_RESTREINT . $r[1] . '.php'))
 		return include_once($f);
 }
 
@@ -68,11 +65,8 @@ function charger_fonction($nom, $dossier='exec', $continue=false) {
 		($inc ? "" : "(fichier $dossier/$nom absent)"));
 
 	include_spip('inc/minipres');
-	install_debut_html(_T('forum_titre_erreur'));
-	echo '<p>' . _T('fichier_introuvable',
-		array('fichier'=> '<b>'.htmlentities("$dossier/$nom").'</b>'));
-	install_fin_html();
-	exit;
+	minipres(_T('forum_titre_erreur'),
+		 _T('fichier_introuvable', array('fichier'=> '<b>'.htmlentities("$dossier/$nom").'</b>')));
 }
 
 //
@@ -88,11 +82,6 @@ function include_spip($f, $include = true) {
 		}
 		return $s;
 	}
-
-	// Hack pour pouvoir appeler cette fonction depuis mes_options.
-	if (!defined('_DIR_INCLUDE'))
-		define('_DIR_INCLUDE', _DIR_RESTREINT);
-
 	if (!$s = find_in_path($f . '.php')
 	AND (!_EXTENSION_PHP OR !$s = find_in_path($f . '.php3'))) {
 		return $GLOBALS['meta']['noyau'][_DIR_RESTREINT][$f] = false;
@@ -116,8 +105,8 @@ function include_spip($f, $include = true) {
 // le pipeline execute les elements disponibles pour cette action,
 // les uns apres les autres, et retourne la valeur finale
 //
-// Cf. compose_filtres dans inc-compilo-index.php3, qui est le
-// pendant "compilŽ" de cette fonctionnalite
+// Cf. compose_filtres dans references.php, qui est la
+// version compilee de cette fonctionnalite
 
 // appel unitaire d'une fonction du pipeline
 // utilisee dans le script pipeline precompile
@@ -858,6 +847,7 @@ function spip_register_globals() {
 }
 
 function spip_initialisation() {
+
 	// la taille maxi des logos (0 : pas de limite)
 	define('_LOGO_MAX_SIZE', 0); # poids en ko
 	define('_LOGO_MAX_WIDTH', 0); # largeur en pixels
@@ -870,35 +860,8 @@ function spip_initialisation() {
 	define('_IMG_MAX_HEIGHT', 0); # hauteur en pixels
 
 	define('_IMG_GD_MAX_PIXELS', 0); # nombre de pixels maxi pour calcul de la vignette avec gd
-	
-	// Le fichier de connexion a la base de donnees
-	define('_FILE_CONNECT_INS', (_DIR_RESTREINT . "inc_connect"));
-	define('_FILE_CONNECT',
-		(@is_readable($f = _FILE_CONNECT_INS . '.php') ? $f
-	:	(@is_readable($f = _FILE_CONNECT_INS . '.php3') ? $f
-	:	false)));
-
-	// les repertoires annexes
-	define('_DIR_IMG', _DIR_RACINE ."IMG/");
-	define('_DIR_DOC', _DIR_RACINE ."IMG/");
-	define('_DIR_CACHE', _DIR_RACINE ."CACHE/");
-	define('_DIR_SESSIONS', _DIR_RESTREINT . "data/");
-	define('_DIR_TRANSFERT', _DIR_RESTREINT . "upload/");
-	define('_DIR_PLUGINS', _DIR_RACINE . "plugins/");
-	define('_DIR_LOGOS', _DIR_RACINE ."IMG/");
-
-//	define('_DIR_POLICES', _DIR_RESTREINT ."polices/");
-	define('_DIR_POLICES', "polices/");
-
-	// les fichiers qu'on y met, entre autres
-	define('_FILE_CRON_LOCK', _DIR_SESSIONS . 'cron.lock');
-	define('_FILE_MYSQL_OUT', _DIR_SESSIONS . 'mysql_out');
-	define('_FILE_GARBAGE', _DIR_SESSIONS . '.poubelle');
-	define('_FILE_META', _DIR_SESSIONS . 'meta_cache.txt');
-
-	// sous-repertoires d'images 
-	define('_DIR_TeX', _DIR_IMG . "cache-TeX/");
 
+	define('_DIR_POLICES', "polices/");
 	// Icones
 	# le chemin http (relatif) vers les images standard
 	define('_DIR_IMG_PACK', (_DIR_RESTREINT . 'img_pack/'));
@@ -1017,7 +980,7 @@ function spip_initialisation() {
 	// (non surchargeable en l'etat ; attention si on utilise include_spip()
 	// pour le rendre surchargeable, on va provoquer un reecriture
 	// systematique du noyau ou une baisse de perfs => a etudier)
-	include_once _DIR_INCLUDE.'inc/flock.php';
+	include_once _DIR_RESTREINT . 'inc/flock.php';
 
 
 	// Lire les meta cachees
@@ -1078,9 +1041,4 @@ function verifier_visiteur() {
 	}
 }
 
-//
-// INITIALISER LES CONSTANTES ET LES VARIABLES SYSTEMES DE SPIP
-//
-spip_initialisation();
-
 ?>
diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php
index 2f9f59db9c4f1d5afb66cb70cf686971b705e788..65f08ca9ae69394d8dac2dbf5052fc950572ad84 100644
--- a/ecrire/inc_version.php
+++ b/ecrire/inc_version.php
@@ -235,10 +235,41 @@ $hash_recherche = '';
 $hash_recherche_strict = '';
 $profondeur_url = 0;
 
+// Fonction definissant les repertoires et fichiers indispensables
+// et non mutualisables
+
+function spip_initialisation_parametree($dir1, $dir2) {
+
+	define('_DIR_IMG', $dir1 ."IMG/");
+	define('_DIR_DOC', $dir1 ."IMG/");
+	define('_DIR_LOGOS', $dir1 ."IMG/");
+	define('_DIR_CACHE', $dir1 ."CACHE/");
+	define('_DIR_PLUGINS', $dir1 . "plugins/");
+
+	define('_DIR_SESSIONS', $dir2 . "data/");
+	define('_DIR_TRANSFERT', $dir2 . "upload/");
+
+	// les fichiers qu'on y met, entre autres
+	define('_FILE_CRON_LOCK', _DIR_SESSIONS . 'cron.lock');
+	define('_FILE_MYSQL_OUT', _DIR_SESSIONS . 'mysql_out');
+	define('_FILE_GARBAGE', _DIR_SESSIONS . '.poubelle');
+	define('_FILE_META', _DIR_SESSIONS . 'meta_cache.txt');
+
+	// sous-repertoires d'images 
+	define('_DIR_TeX', _DIR_IMG . "cache-TeX/");
+
+	// Le fichier de connexion a la base de donnees
+	define('_FILE_CONNECT_INS', ($dir2 . "inc_connect"));
+	define('_FILE_CONNECT',
+		(@is_readable($f = _FILE_CONNECT_INS . '.php') ? $f
+	:	(@is_readable($f = _FILE_CONNECT_INS . '.php3') ? $f
+	:	false)));
+}
 
 //
 // Inclure le fichier ecrire/mes_options (ou equivalent)
 //
+
 if (defined('_FILE_OPTIONS')) {
 	if (@file_exists(_FILE_OPTIONS)) {
 		include_once(_FILE_OPTIONS);
@@ -255,13 +286,24 @@ if (defined('_FILE_OPTIONS')) {
 	}
 }
 
+//
+// INITIALISER LES REPERTOIRES NON PARTAGEABLES
+//
+// 
+// mais cette fonction a peut-etre deja ete appelee par mes_options
+@spip_initialisation_parametree(_DIR_RACINE, _DIR_RESTREINT) ;
+
 //
 // Definitions standards (charge aussi inc/flock)
 //
-# on peut mettre ces deux lignes dans mes_options si on veut beneficier
-# des definitions (notamment de $auteur_session)
-define('_DIR_INCLUDE', _DIR_RESTREINT);
-require_once(_DIR_INCLUDE . 'inc/utils.php');
+
+require_once(_DIR_RESTREINT . 'inc/utils.php');
+
+//
+// INITIALISER LES CONSTANTES ET LES VARIABLES SYSTEMES DE SPIP
+//
+
+spip_initialisation();
 
 // chargement des plugins : doit arriver en dernier
 // car dans les plugins on peut inclure inc-version