diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index b0400799b0020178bc8591b159db19e776290e01..cc2938188905ca6a7772b73042a881101a890f16 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -1259,6 +1259,81 @@ function spip_initialisation_suite() {
 	# les configurations limitees en memoire ont un seuil plutot vers 1MPixel
 	define('_IMG_GD_MAX_PIXELS', (isset($GLOBALS['meta']['max_taille_vignettes'])&&$GLOBALS['meta']['max_taille_vignettes']<5500000)?$GLOBALS['meta']['max_taille_vignettes']:0);
 	define('_IMG_GD_QUALITE', 85);
+	init_var_mode();
+}
+
+// Reperer les variables d'URL qui conditionnent la perennite du cache, des urls
+// ou d'autres petit caches (trouver_table, css et js compactes ...)
+// http://doc.spip.org/@init_var_mode
+function init_var_mode(){
+	static $done = false;
+	if (!$done) {
+		// On fixe $GLOBALS['var_mode']
+		$GLOBALS['var_mode'] = false;
+		$GLOBALS['var_preview'] = false;
+		$GLOBALS['var_images'] = false;
+		$GLOBALS['var_noisettes'] = false;
+		$GLOBALS['var_urls'] = false;
+		if (isset($_GET['var_mode'])) {
+			// tout le monde peut calcul/recalcul
+			if ($_GET['var_mode'] == 'calcul'
+			OR $_GET['var_mode'] == 'recalcul')
+				$GLOBALS['var_mode'] = $_GET['var_mode'];
+		
+			// preview, debug, blocs, urls et images necessitent une autorisation
+			else if (in_array($_GET['var_mode'],array('preview','debug','blocs','urls','images'))) {
+				include_spip('inc/autoriser');
+				if (autoriser(
+					($_GET['var_mode'] == 'preview')
+						? 'previsualiser'
+						: 'debug'
+				)) {
+					switch($_GET['var_mode']){
+						case 'preview':
+							// forcer le compilo et ignorer les caches existants
+							$GLOBALS['var_mode'] = 'recalcul';
+							// truquer les boucles et ne pas enregistrer de cache
+							$GLOBALS['var_preview'] = true;
+							break;
+						case 'blocs':
+							// forcer le compilo et ignorer les caches existants
+							$GLOBALS['var_mode'] = 'calcul';
+							$GLOBALS['var_noisettes'] = true;
+							break;
+						case 'urls':
+							// forcer le compilo et ignorer les caches existants
+							$GLOBALS['var_mode'] = 'calcul';
+							$GLOBALS['var_urls'] = true;
+							break;
+						case 'images':
+							// forcer le compilo et ignorer les caches existants
+							$GLOBALS['var_mode'] = 'calcul';
+							// indiquer qu'on doit recalculer les images
+							$GLOBALS['var_images'] = true;
+							break;
+						default :
+							$GLOBALS['var_mode'] = $_GET['var_mode'];
+							break;
+					}
+					spip_log($GLOBALS['visiteur_session']['nom']
+						. " ".$GLOBALS['var_mode']);
+				}
+				// pas autorise ?
+				else {
+					// si on n'est pas connecte on se redirige
+					if (!$GLOBALS['visiteur_session']) {
+						include_spip('inc/headers');
+						redirige_par_entete(generer_url_public('login',
+						'url='.rawurlencode(
+						parametre_url(self(), 'var_mode', $_GET['var_mode'], '&')
+						), true));
+					}
+					// sinon tant pis
+				}
+			}
+		}
+		$done = true;
+	}
 }
 
 // Annuler les magic quotes \' sur GET POST COOKIE et GLOBALS ;
diff --git a/ecrire/public/cacher.php b/ecrire/public/cacher.php
index e32760d97663d9d04d31f3212fb98c97915c9673..16b3154293cb7677892f4875af7240718178379e 100644
--- a/ecrire/public/cacher.php
+++ b/ecrire/public/cacher.php
@@ -193,8 +193,6 @@ function nettoyer_petit_cache($prefix, $duree = 300) {
 // http://doc.spip.org/@public_cacher_dist
 function public_cacher_dist($contexte, &$use_cache, &$chemin_cache, &$page, &$lastmodified) {
 
-	init_var_mode();
-
 	// Second appel, destine a l'enregistrement du cache sur le disque
 	if (isset($chemin_cache)) return creer_cache($page, $chemin_cache);
 
@@ -290,77 +288,4 @@ function public_cacher_dist($contexte, &$use_cache, &$chemin_cache, &$page, &$la
 	return;
 }
 
-// Reperer les variables d'URL qui conditionnent la perennite du cache
-
-// http://doc.spip.org/@init_var_mode
-function init_var_mode(){
-	static $done = false;
-	if (!$done) {
-		// On fixe $GLOBALS['var_mode']
-		$GLOBALS['var_mode'] = false;
-		$GLOBALS['var_preview'] = false;
-		$GLOBALS['var_images'] = false;
-		$GLOBALS['var_noisettes'] = false;
-		$GLOBALS['var_urls'] = false;
-		if (isset($_GET['var_mode'])) {
-			// tout le monde peut calcul/recalcul
-			if ($_GET['var_mode'] == 'calcul'
-			OR $_GET['var_mode'] == 'recalcul')
-				$GLOBALS['var_mode'] = $_GET['var_mode'];
-		
-			// preview, debug, blocs, urls et images necessitent une autorisation
-			else if (in_array($_GET['var_mode'],array('preview','debug','blocs','urls','images'))) {
-				include_spip('inc/autoriser');
-				if (autoriser(
-					($_GET['var_mode'] == 'preview')
-						? 'previsualiser'
-						: 'debug'
-				)) {
-					switch($_GET['var_mode']){
-						case 'preview':
-							// forcer le compilo et ignorer les caches existants
-							$GLOBALS['var_mode'] = 'recalcul';
-							// truquer les boucles et ne pas enregistrer de cache
-							$GLOBALS['var_preview'] = true;
-							break;
-						case 'blocs':
-							// forcer le compilo et ignorer les caches existants
-							$GLOBALS['var_mode'] = 'calcul';
-							$GLOBALS['var_noisettes'] = true;
-							break;
-						case 'urls':
-							// forcer le compilo et ignorer les caches existants
-							$GLOBALS['var_mode'] = 'calcul';
-							$GLOBALS['var_urls'] = true;
-							break;
-						case 'images':
-							// forcer le compilo et ignorer les caches existants
-							$GLOBALS['var_mode'] = 'calcul';
-							// indiquer qu'on doit recalculer les images
-							$GLOBALS['var_images'] = true;
-							break;
-						default :
-							$GLOBALS['var_mode'] = $_GET['var_mode'];
-							break;
-					}
-					spip_log($GLOBALS['visiteur_session']['nom']
-						. " ".$GLOBALS['var_mode']);
-				}
-				// pas autorise ?
-				else {
-					// si on n'est pas connecte on se redirige
-					if (!$GLOBALS['visiteur_session']) {
-						include_spip('inc/headers');
-						redirige_par_entete(generer_url_public('login',
-						'url='.rawurlencode(
-						parametre_url(self(), 'var_mode', $_GET['var_mode'], '&')
-						), true));
-					}
-					// sinon tant pis
-				}
-			}
-		}		
-		$done = true;
-	}
-}
-?>
+?>
\ No newline at end of file