diff --git a/ecrire/inc/flock.php b/ecrire/inc/flock.php
index 9e47388dce966548b06442f69acf1e9f3c9b4010..9fecf5ccf2db3859774358b284ce92c5de59d959 100644
--- a/ecrire/inc/flock.php
+++ b/ecrire/inc/flock.php
@@ -184,19 +184,19 @@ function jeune_fichier($fichier, $n)
 // http://doc.spip.org/@supprimer_fichier
 function supprimer_fichier($fichier, $lock=true) {
 	if (!@file_exists($fichier))
-		return;
+		return true;
 
 	if ($lock) {
 		// verrouiller le fichier destination
 		if (!$fp = spip_fopen_lock($fichier, 'a', LOCK_EX))
-			return;
+			return false;
 	
 		// liberer le verrou
 		spip_fclose_unlock($fp);
 	}
 	
 	// supprimer
-	@unlink($fichier);
+	return @unlink($fichier);
 }
 // Supprimer brutalement, si le fichier existe
 // http://doc.spip.org/@spip_unlink
diff --git a/ecrire/inc/meta.php b/ecrire/inc/meta.php
index 11f908ba1decd7cea70f2d71d948c86f13332479..7a5b15daf1027def758d58bfd35b559c2fd6da20 100644
--- a/ecrire/inc/meta.php
+++ b/ecrire/inc/meta.php
@@ -19,23 +19,28 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 function inc_meta_dist()
 {
 	// Lire les meta, en cache si present, valide et lisible
-	if ($old = jeune_fichier(_FILE_META, 1<<24)
+	if ($new = jeune_fichier(_FILE_META, 1<<24)
 #   AND (@filemtime(_FILE_META) > @filemtime(_DIR_RESTREINT . '.svn/entries'))
 	    AND lire_fichier(_FILE_META, $meta))
 		$GLOBALS['meta'] = @unserialize($meta);
 	// sinon lire en base
 
-	if (!$GLOBALS['meta']) $old = !lire_metas();
+	if (!$GLOBALS['meta']) $new = !lire_metas();
 	// renouveller l'alea au besoin
 	if (test_espace_prive()
 	AND $GLOBALS['meta']
-	AND (time() > _RENOUVELLE_ALEA +  @$GLOBALS['meta']['alea_ephemere_date'])) {
+	    AND (time() >/* _RENOUVELLE_ALEA + */ @$GLOBALS['meta']['alea_ephemere_date'])) {
+	  // si on n'a pas l'acces en ecriture sur le cache,
+	  // ne pas renouveller l'alea sinon le cache devient faux
+		if (supprimer_fichier(_FILE_META)) {
 			include_spip('inc/acces');
 			renouvelle_alea();
+			$new = false; 
+		} else spip_log("impossible d'ecrire dans " . _FILE_META);
 	}
-	// et refaire le cache si on a pu lire
+	// et refaire le cache si on a du lire en base
 
-	if (!$old) ecrire_fichier(_FILE_META, serialize($GLOBALS['meta']));
+	if (!$new) ecrire_fichier(_FILE_META, serialize($GLOBALS['meta']));
 }
 
 // fonctions aussi appelees a l'install ==> spip_query en premiere requete