diff --git a/ecrire/action/activer_plugins.php b/ecrire/action/activer_plugins.php
index 087639aa078c51e517a8b98792232545404029db..cadeba0fcd0f1ee24474d7f58695b11b56336ca4 100644
--- a/ecrire/action/activer_plugins.php
+++ b/ecrire/action/activer_plugins.php
@@ -35,6 +35,7 @@ function enregistre_modif_plugin(){
 
 	spip_log("Changement des plugins actifs par l'auteur " . $GLOBALS['auteur_session']['id_auteur'] . ": " . join(',', $plugin));
 	ecrire_plugin_actifs($plugin);
+	include_spip('inc/meta');
 	ecrire_metas();
 }
 
diff --git a/ecrire/action/cookie.php b/ecrire/action/cookie.php
index b35dce12c5fd3c89a4083199d29b2f004f5f9a18..428b28bc38b8f5c3ce4ae1b8762e17981ed3c57d 100644
--- a/ecrire/action/cookie.php
+++ b/ecrire/action/cookie.php
@@ -91,7 +91,7 @@ function action_cookie_dist() {
 			// La case "rester connecte quelques jours"
 			$session_remember = (_request('session_remember') == 'oui') ? 'perma' : '';
 			if ($session_remember)
-				spip_setcookie('spip_session', $cookie_session, time() + 3600 * 24 * 14);
+				spip_setcookie('spip_session', $cookie_session, time() + (_RENOUVELLE_ALEA << 1));
 			else
 				spip_setcookie('spip_session', $cookie_session);
 	
@@ -117,7 +117,7 @@ function action_cookie_dist() {
 	// Ajout de cookie d'admin
 	else if (($set_cookie_admin OR $set_cookie_admin = _request('cookie_admin'))
 	AND $set_cookie_admin != $_COOKIE['spip_admin']) {
-		spip_setcookie('spip_admin', $set_cookie_admin, time() + 3600 * 24 * 14);
+		spip_setcookie('spip_admin', $set_cookie_admin, time() + (_RENOUVELLE_ALEA << 1));
 	}
 
 	// Redirection finale
diff --git a/ecrire/action/desinstaller_plugin.php b/ecrire/action/desinstaller_plugin.php
index 574244a7dc2850c335ddba14cc26261c4bd41932..fb0dbd4779ec0711b17b0a072ca28cfeeb0bfd12 100644
--- a/ecrire/action/desinstaller_plugin.php
+++ b/ecrire/action/desinstaller_plugin.php
@@ -25,6 +25,7 @@ function action_desinstaller_plugin_dist() {
 		// desactiver si il a bien ete desinstalle
 		if (!$etat)
 			ecrire_plugin_actifs(array($plug_file),false,'enleve');
+		include_spip('inc/meta');
 		ecrire_metas();
 	}
 	if ($redirect = _request('redirect')){
diff --git a/ecrire/action/premiers_pas.php b/ecrire/action/premiers_pas.php
index 3de5d70e4f2c21d1bb1e0a4c0bea44d7ef914a14..ce990a407c5d2b2262a0fabf1ffcebf3bde77c97 100644
--- a/ecrire/action/premiers_pas.php
+++ b/ecrire/action/premiers_pas.php
@@ -12,6 +12,8 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
+include_spip('inc/meta');
+
 // http://doc.spip.org/@action_premiers_pas_dist
 function action_premiers_pas_dist() {
 	$securiser_action = charger_fonction('securiser_action', 'inc');
diff --git a/ecrire/action/regler_moderation.php b/ecrire/action/regler_moderation.php
index 439bc751944b630d2ae8371c5c3aa41980981895..0899c659790f21a3b82b03f5402436576814d60b 100644
--- a/ecrire/action/regler_moderation.php
+++ b/ecrire/action/regler_moderation.php
@@ -33,6 +33,7 @@ function action_regler_moderation_dist()
 	$statut = _request('change_accepter_forum');
 	spip_query("UPDATE spip_articles SET accepter_forum='$statut' WHERE id_article=". $id_article);
 	if ($statut == 'abo') {
+		include_spip('inc/meta');
 		ecrire_meta('accepter_visiteurs', 'oui');
 		ecrire_metas();
 	}
diff --git a/ecrire/base/convert_utf8.php b/ecrire/base/convert_utf8.php
index 796423d2684f3820b83178e6fc2553da93c1ca0e..ac671e5850e6abdc43aa74d5d273bf8b927e891b 100644
--- a/ecrire/base/convert_utf8.php
+++ b/ecrire/base/convert_utf8.php
@@ -63,6 +63,7 @@ function base_convert_utf8_dist($titre, $reprise=false)
 		'spip_messages' => 'titre'
 	);
 
+	include_spip('inc/meta');
 	if (!$reprise) convert_utf8_init($tables_a_convertir);
 
 	echo install_debut_html($titre);
diff --git a/ecrire/base/import_all.php b/ecrire/base/import_all.php
index f1b42ebd55399ddf3d8f782c5107107ff62af899..a4ba6f3cbb625e9b008b259d3d15cb9a44e5fec5 100644
--- a/ecrire/base/import_all.php
+++ b/ecrire/base/import_all.php
@@ -14,6 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('base/serial');
 include_spip('base/auxiliaires');
+include_spip('inc/meta');
 
 // par defaut tout est importe sauf les tables ci-dessous
 // possibiliter de definir cela tables via la meta
@@ -43,7 +44,6 @@ function base_import_all_dist($titre, $reprise=false)
 	// au rappel, on commence (voire on continue)
 	@ini_set("zlib.output_compression","0"); // pour permettre l'affichage au fur et a mesure
 	// utiliser une version fraiche des metas (ie pas le cache)
-	include_spip('inc/meta');
 	lire_metas();
 	include_spip('inc/import');
 	@ignore_user_abort(1);
diff --git a/ecrire/base/optimiser.php b/ecrire/base/optimiser.php
index d7a7e3ba309bda79a340c604ad54fc735b00fa8a..a69f28ac058f55fe0a70243b28e65840b2b33a37 100644
--- a/ecrire/base/optimiser.php
+++ b/ecrire/base/optimiser.php
@@ -16,7 +16,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 // heure de reference pour le garbage collector = 24h auparavant
 // http://doc.spip.org/@optimiser_base
 function optimiser_base($attente = 86400) {
-	spip_log ("optimisation de la base");
 
 	# format = 20060610110141, si on veut forcer une optimisation tout de suite
 	$mydate = date("YmdHis", time() - $attente);
@@ -37,6 +36,7 @@ function optimiser_base($attente = 86400) {
 
 	if ($tables) {
 		$table_op = intval($GLOBALS['meta']['optimiser_table']+1) % sizeof($tables);
+		include_spip('inc/meta');
 		ecrire_meta('optimiser_table', $table_op);
 		ecrire_metas();
 		$query = "OPTIMIZE TABLE ".$tables[$table_op];
diff --git a/ecrire/base/upgrade.php b/ecrire/base/upgrade.php
index 91899e78abef6adff473eedc8a910533a99ad3c6..20bfea0e12b8b92b16d0bb0cc8bcbb40d56fb0a2 100644
--- a/ecrire/base/upgrade.php
+++ b/ecrire/base/upgrade.php
@@ -13,6 +13,8 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
+include_spip('inc/meta');
+
 // http://doc.spip.org/@base_upgrade_dist
 function base_upgrade_dist($titre)
 {
@@ -30,7 +32,6 @@ function base_upgrade_dist($titre)
 // http://doc.spip.org/@maj_version
 function maj_version ($version, $test = true) {
 	if ($test) {
-		include_spip('inc/meta');
 		ecrire_meta('version_installee', $version,'non');
 		ecrire_metas();
 		spip_log("mise a jour de la base vers $version");
@@ -412,7 +413,6 @@ function maj_base($version_cible = 0) {
 	if (upgrade_vers(1.414, $version_installee, $version_cible)) {
 		// Forum par defaut "en dur" dans les spip_articles
 		// -> non, prio (priori), pos (posteriori), abo (abonnement)
-		include_spip('inc/meta');
 		$accepter_forum = substr($GLOBALS['meta']["forums_publics"],0,3) ;
 		$result = spip_query("ALTER TABLE spip_articles CHANGE accepter_forum accepter_forum CHAR(3) NOT NULL");
 
@@ -437,7 +437,6 @@ function maj_base($version_cible = 0) {
 		$result = spip_query("SELECT * FROM spip_auteurs WHERE statut = '0minirezo' AND email != '' ORDER BY id_auteur LIMIT 1");
 
 		if ($webmaster = spip_fetch_array($result)) {
-			include_spip('inc/meta');
 			ecrire_meta('email_webmaster', $webmaster['email']);
 			ecrire_metas();
 		}
@@ -1114,10 +1113,8 @@ function maj_base($version_cible = 0) {
 
 		spip_query("INSERT INTO spip_index (hash,points,id_objet,id_table) SELECT hash,points,id_syndic as id_objet,'9' as id_table FROM spip_index_syndic");
 		spip_query("DROP TABLE IF EXISTS spip_index_syndic");
-		include_spip('inc/meta');
 		lire_metas();
 		ecrire_metas();
-
 		maj_version(1.905);
 	}
 
@@ -1250,7 +1247,6 @@ function maj_base($version_cible = 0) {
 			$IMPORT_tables_noimport = unserialize($GLOBALS['meta']['IMPORT_tables_noimport']);
 			foreach ($IMPORT_tables_noimport as $key=>$table)
 				if ($table=='spip_meta') unset($IMPORT_tables_noimport[$key]);
-			include_spip('inc/meta');
 			ecrire_meta('IMPORT_tables_noimport',serialize($IMPORT_tables_noimport),'non');
 		}
 		maj_version('1.923');
diff --git a/ecrire/configuration/reducteur.php b/ecrire/configuration/reducteur.php
index 58356727ea30b82a22297371420461f97a141e6f..33262f54a27b7dc8b06a29670a6555b5768166bb 100644
--- a/ecrire/configuration/reducteur.php
+++ b/ecrire/configuration/reducteur.php
@@ -14,6 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/presentation');
 include_spip('inc/config');
+include_spip('inc/meta');
 
 function configuration_reducteur_dist()
 {
diff --git a/ecrire/exec/config_contenu.php b/ecrire/exec/config_contenu.php
index 6c31bf5fa264d60916bfa9219320bb14f44f42de..5af9409be04c89a5dc50283a12acc660bcaf5182 100644
--- a/ecrire/exec/config_contenu.php
+++ b/ecrire/exec/config_contenu.php
@@ -15,6 +15,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 include_spip('inc/presentation');
 include_spip('inc/mail');
 include_spip('inc/config');
+include_spip('inc/meta');
 
 // http://doc.spip.org/@exec_config_contenu_dist
 function exec_config_contenu_dist()
diff --git a/ecrire/exec/config_fonctions.php b/ecrire/exec/config_fonctions.php
index bbcc6f3356a22b7c66df2ace00fcb36d784e2bf8..dc92646f43bfda170c4b885a3c732a52feba9f0b 100644
--- a/ecrire/exec/config_fonctions.php
+++ b/ecrire/exec/config_fonctions.php
@@ -14,6 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/presentation');
 include_spip('inc/config');
+include_spip('inc/meta');
 
 // http://doc.spip.org/@exec_config_fonctions_dist
 function exec_config_fonctions_dist()
diff --git a/ecrire/exec/config_multilang.php b/ecrire/exec/config_multilang.php
index 61417bab6342d89aced101b962bd3c358f7bf1a2..caa8d9a42ce919935a1bb94064e1f62c29090d49 100644
--- a/ecrire/exec/config_multilang.php
+++ b/ecrire/exec/config_multilang.php
@@ -14,6 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/presentation');
 include_spip('inc/config');
+include_spip('inc/meta');
 
 // http://doc.spip.org/@exec_config_multilang_dist
 function exec_config_multilang_dist()
diff --git a/ecrire/exec/configuration.php b/ecrire/exec/configuration.php
index 0df73e41f059d7c32c15672f21bb3fd057f0b76b..bd874f419d768ad2745d0cd6c877658cf5f1401e 100644
--- a/ecrire/exec/configuration.php
+++ b/ecrire/exec/configuration.php
@@ -14,6 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/presentation');
 include_spip('inc/config');
+include_spip('inc/meta');
 
 // http://doc.spip.org/@exec_configuration_dist
 function exec_configuration_dist(){
diff --git a/ecrire/inc/acces.php b/ecrire/inc/acces.php
index 7b6366c0ff9859d5b99eea0729a6a275b6374f0a..71b655f6e5b930ad0596ad37cda191851e463fe7 100644
--- a/ecrire/inc/acces.php
+++ b/ecrire/inc/acces.php
@@ -69,6 +69,7 @@ function creer_uniqid() {
 function renouvelle_alea()
 {
 	$alea = md5(creer_uniqid());
+	include_spip('inc/meta');
 	ecrire_meta('alea_ephemere_ancien', @$GLOBALS['meta']['alea_ephemere'],'non');
 	ecrire_meta('alea_ephemere', $alea,'non');
 	ecrire_meta('alea_ephemere_date', time(),'non');
diff --git a/ecrire/inc/admin.php b/ecrire/inc/admin.php
index bde48f4e3d0273031d2efa3761a33f396ffb6bdf..1add7d2b1d80930b20e344adda0bb79d68d96204 100644
--- a/ecrire/inc/admin.php
+++ b/ecrire/inc/admin.php
@@ -13,6 +13,7 @@
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/headers');
+include_spip('inc/meta');
 
 // demande/verifie le droit de creation de repertoire par le demandeur;
 // memorise dans les meta que ce script est en cours d'execution
diff --git a/ecrire/inc/export.php b/ecrire/inc/export.php
index c396c26bab858decbfc23b087b6c755e0251f23e..fca7039f6d851f60d338590ce2b3d09b2f5e7a11 100644
--- a/ecrire/inc/export.php
+++ b/ecrire/inc/export.php
@@ -160,6 +160,7 @@ function export_objets($table, $etape, $cpt, $dir, $archive, $gz, $total) {
 	  : '';
 	$debut = $cpt * _EXPORT_TRANCHES_LIMITE;
 
+	include_spip('inc/meta');
 	while (1){ // on ne connait pas le nb de paquets d'avance
 
 		$string = build_while($debut, $table, $prim);
diff --git a/ecrire/inc/import.php b/ecrire/inc/import.php
index 2f1d455d542ca61f9ed553dabe1e384c772f70ca..d3d85f7442046192e24d5f840abeb852d3b3eb7f 100644
--- a/ecrire/inc/import.php
+++ b/ecrire/inc/import.php
@@ -14,6 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/presentation');
 include_spip('inc/acces');
+include_spip('inc/meta');
 include_spip('inc/indexation'); // pour la fonction primary_index_table 
 include_spip('base/abstract_sql');
 
diff --git a/ecrire/inc/indexation.php b/ecrire/inc/indexation.php
index ca50582ec492756a50def1959090ca4bf8ac4ce6..9248ebe4c8c686f32eb8c3db349ca519dee8610f 100644
--- a/ecrire/inc/indexation.php
+++ b/ecrire/inc/indexation.php
@@ -10,9 +10,8 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-
-//
 if (!defined("_ECRIRE_INC_VERSION")) return;
+include_spip('inc/meta');
 include_spip('base/create');
 include_spip('base/abstract_sql');
 include_spip('public/interfaces');
@@ -38,7 +37,6 @@ $INDEX_elements_objet = FALSE;
 if (isset($GLOBALS['meta']['INDEX_elements_objet']))
 	$INDEX_elements_objet = unserialize($GLOBALS['meta']['INDEX_elements_objet']);
 if (!$INDEX_elements_objet) {
-	include_spip('inc/meta');
 	$INDEX_elements_objet['spip_articles'] = array('titre'=>8,'soustitre'=>5,'surtitre'=>5,'descriptif'=>4,'chapo'=>3,'texte'=>1,'ps'=>1,'nom_site'=>1,'extra|unserialize_join'=>1);
 	$INDEX_elements_objet['spip_breves'] = array('titre'=>8,'texte'=>2,'extra|unserialize_join'=>1);
 	$INDEX_elements_objet['spip_rubriques'] = array('titre'=>8,'descriptif'=>5,'texte'=>1,'extra|unserialize_join'=>1);
@@ -61,7 +59,6 @@ $INDEX_objet_associes = FALSE;
 if (isset($GLOBALS['meta']['INDEX_objet_associes']))
 	$INDEX_objet_associes = unserialize($GLOBALS['meta']['INDEX_objet_associes']);
 if (!$INDEX_objet_associes) {
-	include_spip('inc/meta');
 	$INDEX_objet_associes['spip_articles'] = array('spip_documents'=>1,'spip_auteurs'=>10,'spip_mots'=>3);
 	$INDEX_objet_associes['spip_breves'] = array('spip_documents'=>1,'spip_mots'=>3);
 	$INDEX_objet_associes['spip_rubriques'] = array('spip_documents'=>1,'spip_mots'=>3);
@@ -78,7 +75,6 @@ $INDEX_elements_associes = FALSE;
 if (isset($GLOBALS['meta']['INDEX_elements_associes']))
 	$INDEX_elements_associes = unserialize($GLOBALS['meta']['INDEX_elements_associes']);
 if (!$INDEX_elements_associes){
-	include_spip('inc/meta');
 	$INDEX_elements_associes['spip_documents'] = array('titre'=>2,'descriptif'=>1);
 	$INDEX_elements_associes['spip_auteurs'] = array('nom'=>1);
 	$INDEX_elements_associes['spip_mots'] = array('titre'=>4,'descriptif'=>1);
@@ -92,7 +88,6 @@ $INDEX_critere_indexation = FALSE;
 if (isset($GLOBALS['meta']['INDEX_critere_indexation']))
 	$INDEX_critere_indexation = unserialize($GLOBALS['meta']['INDEX_critere_indexation']);
 if (!$INDEX_critere_indexation){
-	include_spip('inc/meta');
 	$INDEX_critere_indexation['spip_articles']="statut='publie'";
 	$INDEX_critere_indexation['spip_breves']="statut='publie'";
 	$INDEX_critere_indexation['spip_rubriques']="statut='publie'";
@@ -110,7 +105,6 @@ $INDEX_critere_optimisation = FALSE;
 if (isset($GLOBALS['meta']['INDEX_critere_optimisation']))
 	$INDEX_critere_optimisation = unserialize($GLOBALS['meta']['INDEX_critere_optimisation']);
 if (!$INDEX_critere_optimisation) {
-	include_spip('inc/meta');
 	$INDEX_critere_optimisation['spip_articles']="statut<>'publie'";
 	$INDEX_critere_optimisation['spip_breves']="statut<>'publie'";
 	$INDEX_critere_optimisation['spip_rubriques']="statut<>'publie'";
@@ -128,7 +122,6 @@ $INDEX_iteration_nb_maxi = FALSE;
 if (isset($GLOBALS['meta']['INDEX_iteration_nb_maxi']))
 	$INDEX_iteration_nb_maxi = unserialize($GLOBALS['meta']['INDEX_iteration_nb_maxi']);
 if (!$INDEX_iteration_nb_maxi) {
-	include_spip('inc/meta');
 	$INDEX_iteration_nb_maxi['spip_documents']=10;
 	$INDEX_iteration_nb_maxi['spip_syndic']=1;
 	ecrire_meta('INDEX_iteration_nb_maxi',serialize($INDEX_iteration_nb_maxi));
@@ -300,7 +293,6 @@ function update_index_tables(){
 function liste_index_tables() {
 	$liste_tables = array();
 	if (!isset($GLOBALS['meta']['index_table'])) {
-		include_spip('inc/meta');
 		lire_metas();
 	}
 	if (isset($GLOBALS['meta']['index_table']))
diff --git a/ecrire/inc/invalideur.php b/ecrire/inc/invalideur.php
index 4e3b8697d22dd6a62f0b539e113e7f40e8d3819b..90f11df9e082c2cbb326f03a77bcdb228f44bb36 100644
--- a/ecrire/inc/invalideur.php
+++ b/ecrire/inc/invalideur.php
@@ -14,6 +14,7 @@
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('base/serial');
+include_spip('inc/meta');
 
 // http://doc.spip.org/@supprime_invalideurs
 function supprime_invalideurs() {
@@ -67,7 +68,6 @@ function insere_invalideur($inval, $fichier) {
 //
 // http://doc.spip.org/@suivre_invalideur
 function suivre_invalideur($cond, $modif=true) {
-	include_spip('inc/meta');
 	if ($modif) {
 		ecrire_meta('derniere_modif', time());
 		ecrire_metas();
@@ -193,7 +193,6 @@ function retire_cache($cache) {
 // http://doc.spip.org/@retire_caches
 function retire_caches($chemin = '') {
 	include_spip('base/abstract_sql');
-	include_spip('inc/meta');
 	lire_metas();
 	// recuperer la liste des caches voues a la suppression
 	$suppr = array();
diff --git a/ecrire/inc/meta.php b/ecrire/inc/meta.php
index 040ec7b1bc2c9b435dfc81c8049478d2eed05387..af59878cef173a082993206becc12448f59d4e14 100644
--- a/ecrire/inc/meta.php
+++ b/ecrire/inc/meta.php
@@ -81,16 +81,4 @@ function ecrire_metas() {
 		}
 	}
 }
-
-// On force lire_metas() si le cache n'a pas ete utilise
-if (!isset($GLOBALS['meta']))
-	lire_metas();
-
-// On force le renouvellement de l'alea de l'espace prive toutes les 4 heures
-
-if ((!_DIR_RESTREINT) AND _FILE_CONNECT AND abs(time() -  @$GLOBALS['meta']['alea_ephemere_date']) > (3600<<2)) {
-	include_spip('inc/acces');
-	renouvelle_alea();
-}
-
 ?>
diff --git a/ecrire/inc/ortho.php b/ecrire/inc/ortho.php
index 8c0ab2181612a307326868581b275de5d5ffdf48..cae22da6212b7fd822003455865f10647a80f87a 100644
--- a/ecrire/inc/ortho.php
+++ b/ecrire/inc/ortho.php
@@ -11,6 +11,7 @@
 \***************************************************************************/
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
+include_spip('inc/meta');
 
 // Mettre a jour la liste locale des miroirs
 // http://doc.spip.org/@maj_miroirs_ortho
diff --git a/ecrire/inc/premiers_pas.php b/ecrire/inc/premiers_pas.php
index b00e12d8c5ab7cf4652c0426f0d083a062eff7f7..dfd877f026ec5ce28a8ed7081898672e1f26a2f0 100644
--- a/ecrire/inc/premiers_pas.php
+++ b/ecrire/inc/premiers_pas.php
@@ -10,7 +10,11 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
 include_spip('inc/minipres');
+include_spip('inc/meta');
+
 // http://doc.spip.org/@premiers_pas_etapes
 function premiers_pas_etapes($etape,$titre,$texte){
 	global $spip_lang_left;
diff --git a/ecrire/inc/securiser_action.php b/ecrire/inc/securiser_action.php
index 32c24a7f4233922042a69cf72e05ce4ab25f399f..73847ecb5b0ec3dd65aff28ec8fef32fae96163e 100644
--- a/ecrire/inc/securiser_action.php
+++ b/ecrire/inc/securiser_action.php
@@ -12,8 +12,6 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-include_spip('inc/meta');
-
 // interface d'appel:
 // - au moins un argument: retourne une URL ou un formulaire securises
 // - sans argument: verifie la securite et retourne _request('arg'), ou exit.
diff --git a/ecrire/inc/session.php b/ecrire/inc/session.php
index 2704b4a27d8aedd9e8623719c38032cdf9d388b8..5b4e0902a2b9261fb3755483e3ed696ea7e5d80a 100644
--- a/ecrire/inc/session.php
+++ b/ecrire/inc/session.php
@@ -12,8 +12,6 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-include_spip('inc/meta');
-
 /*
  * Gestion de l'authentification par sessions
  * a utiliser pour valider l'acces (bloquant)
diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php
index 6483cfec03af78febf8622ceeaec957332f919e8..97c2ca3a3a28cdb289512bdc798c2b3581b8aa51 100644
--- a/ecrire/inc/texte.php
+++ b/ecrire/inc/texte.php
@@ -554,6 +554,7 @@ function calculer_url ($lien, $texte='', $pour='url') {
 		// ou calculer_url_raccourci si on n'a besoin que du lien
 		$f=(($pour == 'url') ? 'generer' : 'calculer') . '_url_' . $f;
 		charger_generer_url();
+		spip_log("$f,$objet,$id,$params,$ancre");
 		if (function_exists($f)) {
 			if ($pour == 'url') {
 				$url = $f($id);
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 900b77a18c79c33c94aac63eb00caf436fa1f1c2..f28b83a7ff8fadf820568e54ff3cceb58c573f23 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -1236,11 +1236,17 @@ function spip_initialisation($pi=NULL, $pa=NULL, $ti=NULL, $ta=NULL) {
 	// systematique du noyau ou une baisse de perfs => a etudier)
 	include_once _DIR_RESTREINT . 'inc/flock.php';
 
-	// Lire les meta cachees et initier le noyau (espace public uniquement)
+	// Duree de validite de l'alea pour les cookies et ce qui s'ensuit.
+
+	define('_RENOUVELLE_ALEA', 3600 << 2);
+
+	// Lire les meta cachees et init noyau (espace public uniquement)
+
 	$GLOBALS['noyau'] = array();
 	if (lire_fichier(_FILE_META, $meta)) {
 		$GLOBALS['meta'] = @unserialize($meta);
 		if (_DIR_RESTREINT
+		AND (!isset($_REQUEST['var_mode']))
 		AND isset($GLOBALS['meta']['noyau'])
 		AND is_array($GLOBALS['meta']['noyau'])) {
 			$GLOBALS['noyau'] = $GLOBALS['meta']['noyau'];
@@ -1248,21 +1254,25 @@ function spip_initialisation($pi=NULL, $pa=NULL, $ti=NULL, $ta=NULL) {
 		}
 	}
 
+	if  (_FILE_CONNECT) {
 	// en cas d'echec refaire le fichier
-	if (!isset($GLOBALS['meta']) AND _FILE_CONNECT) {
-		include_spip('inc/meta');
-		ecrire_metas();
+		if (!isset($GLOBALS['meta'])) {
+			include_spip('inc/meta');
+			ecrire_metas();
+		}
+
+		// Forcer le renouvellement de l'alea
+
+		if ((!_DIR_RESTREINT)
+		AND (time() > _RENOUVELLE_ALEA +  @$GLOBALS['meta']['alea_ephemere_date'])) {
+			include_spip('inc/acces');
+			renouvelle_alea();
+		}
 	}
+
 	// La meta est indefinie a la premiere installation
 	$GLOBALS['langue_site'] = @$GLOBALS['meta']['langue_site'];
 	
-	# nombre de pixels maxi pour calcul de la vignette avec gd
-	define('_IMG_GD_MAX_PIXELS', isset($GLOBALS['meta']['max_taille_vignettes'])?$GLOBALS['meta']['max_taille_vignettes']:0); 
-
-	// supprimer le noyau si on recalcule
-	if (isset($_REQUEST['var_mode']))
-		$GLOBALS['noyau'] = array();
-
 	// Langue principale du site
 
 	if (!isset($GLOBALS['langue_site'])) include_spip('inc/lang');
@@ -1271,6 +1281,9 @@ function spip_initialisation($pi=NULL, $pa=NULL, $ti=NULL, $ta=NULL) {
 	// Verifier le visiteur
 	if (_FILE_CONNECT) verifier_visiteur();
 
+	# nombre de pixels maxi pour calcul de la vignette avec gd
+	define('_IMG_GD_MAX_PIXELS', isset($GLOBALS['meta']['max_taille_vignettes'])?$GLOBALS['meta']['max_taille_vignettes']:0); 
+
 }
 
 // Annuler les magic quotes \' sur GET POST COOKIE et GLOBALS ;
diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php
index 857833249afc4313aedd4155d0543f11a9ae25fe..701b77c268ca19d48ef2d0b223d66534fe75f039 100644
--- a/ecrire/public/composer.php
+++ b/ecrire/public/composer.php
@@ -12,7 +12,6 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-include_spip('inc/meta');
 include_spip("inc/indexation");
 include_spip('inc/texte');
 include_spip('inc/documents');