diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 7a7d7f2ce3f4c0aac76fef25018214f2dcc10fc2..0e3f495f1a7b677b15b69d04b7f9ee18172f6790 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -596,6 +596,7 @@ function _chemin($dir_path=NULL){
 		if (strlen($GLOBALS['dossier_squelettes']))
 			foreach (array_reverse(explode(':', $GLOBALS['dossier_squelettes'])) as $d)
 				array_unshift($path_full, ($d[0] == '/' ? '' : _DIR_RACINE) . $d . '/');
+		$GLOBALS['path_sig'] = md5(serialize($path_full));
 	}
 	if ($dir_path===NULL) return $path_full;
 
@@ -620,6 +621,7 @@ function _chemin($dir_path=NULL){
 		foreach (array_reverse(explode(':', $GLOBALS['dossier_squelettes'])) as $d)
 			array_unshift($path_full, ($d[0] == '/' ? '' : _DIR_RACINE) . $d . '/');
 
+	$GLOBALS['path_sig'] = md5(serialize($path_full));
 	return $path_full;
 }
 
@@ -628,14 +630,6 @@ function creer_chemin() {
 	$path_a = _chemin();
 	static $c = '';
 
-	// provisoire, a remplacer par un spip_unlink sur les fichiers compiles lors d'un prochain upgrade
-	if (isset($GLOBALS['plugins'])){
-		$c = '';
-		foreach($GLOBALS['plugins'] as $dir) {
-			$path_base = _chemin(_DIR_PLUGINS.$dir);
-		}
-		unset($GLOBALS['plugins']);
-	}
 	// on calcule le chemin si le dossier skel a change
 	if ($c != $GLOBALS['dossier_squelettes']) {
 		// assurer le non plantage lors de la montee de version :
@@ -695,20 +689,30 @@ function chemin_image($icone){
 // 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.
 define('_ROOT_CWD', getcwd().'/');
+$GLOBALS['path_sig'] = '';
 $GLOBALS['path_files'] = null;
 
 // http://doc.spip.org/@find_in_path
 function find_in_path ($file, $dirname='', $include=false) {
 	static $dirs=array();
 	static $inc = array(); # cf http://trac.rezo.net/trac/spip/changeset/14743
-	if (isset($GLOBALS['path_files'][$dirname][$file])) {
-		if (!$GLOBALS['path_files'][$dirname][$file])
+	static $c = '';
+
+	// on calcule le chemin si le dossier skel a change
+	if ($c != $GLOBALS['dossier_squelettes']){
+		// assurer le non plantage lors de la montee de version :
+		$c = $GLOBALS['dossier_squelettes'];
+		creer_chemin(); // forcer un recalcul du chemin et la mise a jour de path_sig
+	}
+
+	if (isset($GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file])) {
+		if (!$GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file])
 			return false;
 		if ($include AND !isset($inc[$dirname][$file])) {
-			include_once _ROOT_CWD . $GLOBALS['path_files'][$dirname][$file];
+			include_once _ROOT_CWD . $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file];
 			$inc[$dirname][$file] = $inc[''][$dirname . $file] = true;
 		}
-		return $GLOBALS['path_files'][$dirname][$file];
+		return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file];
 	}
 
 	$a = strrpos($file,'/');
@@ -728,7 +732,7 @@ function find_in_path ($file, $dirname='', $include=false) {
 				}
 				if (!defined('_SAUVER_CHEMIN'))
 					define('_SAUVER_CHEMIN',true);
-				return $GLOBALS['path_files'][$dirname][$file] = $GLOBALS['path_files'][''][$dirname . $file] = $a;
+				return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file] = $GLOBALS['path_files'][$GLOBALS['path_sig']][''][$dirname . $file] = $a;
 			}
 		}
 	}
@@ -747,7 +751,7 @@ function find_in_path ($file, $dirname='', $include=false) {
 
 	if (!defined('_SAUVER_CHEMIN'))
 		define('_SAUVER_CHEMIN',true);
-	return $GLOBALS['path_files'][$dirname][$file] = $GLOBALS['path_files'][''][$dirname . $file] = false;
+	return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file] = $GLOBALS['path_files'][$GLOBALS['path_sig']][''][$dirname . $file] = false;
 }
 
 function load_path_cache(){
@@ -756,7 +760,9 @@ function load_path_cache(){
 	// on ne recharge pas le cache pour forcer sa mise a jour
 	// le cache de chemin n'est utilise que dans le public
 	if (_DIR_RESTREINT
-		AND (!isset($GLOBALS['visiteur_statut']) OR $GLOBALS['visiteur_statut']!='0minirezo')){
+		//AND (!isset($GLOBALS['visiteur_session']['statut']) OR $GLOBALS['visiteur_session']['statut']!='0minirezo')
+		AND !isset($_COOKIE[$GLOBALS['cookie_prefix'].'_admin'])
+		){
 		lire_fichier(_CACHE_CHEMIN,$contenu);
 		if (!$GLOBALS['path_files']=unserialize($contenu))
 			$GLOBALS['path_files'] = array();
diff --git a/ecrire/public/cacher.php b/ecrire/public/cacher.php
index c8bdee846dfaac7683307dd3b21dfd817f16ae5b..f4630487e651d5545d7ff9b6b73baa7092f23dfd 100644
--- a/ecrire/public/cacher.php
+++ b/ecrire/public/cacher.php
@@ -259,7 +259,8 @@ function public_cacher_dist($contexte, &$use_cache, &$chemin_cache, &$page, &$la
 		|| isset($_COOKIE['spip_admin'])
 		|| @file_exists(_ACCESS_FILE_NAME))
 	) {
-		supprimer_fichier(_DIR_CACHE . $f);
+		$page = array(); // ignorer le cache deja lu
+		supprimer_fichier(_DIR_CACHE . $f); // pas necessaire ?
 		if (in_array($GLOBALS['var_mode'], array('calcul', 'recalcul'))
 		AND $fs) {
 			include_spip('inc/invalideur');