diff --git a/inc-cache.php3 b/inc-cache.php3
index dfef1253839fd5b7095203f8151f4cb710a79421..76f5d4d6d0b0a6c65134f3046452942752650253 100644
--- a/inc-cache.php3
+++ b/inc-cache.php3
@@ -145,25 +145,23 @@ function cache_valide($chemin_cache) {
 
 
 // retourne le nom du fichier cache, 
-// et affecte le 1er param selon les specs de la fonction cache_valide
+// et affecte le param use_cache selon les specs de la fonction cache_valide
 
 function determiner_cache(&$use_cache, $contexte,$fond) {
 	global $_SERVER, $recherche;
 
-	// cas sans jamais de cache pour raison interne
+	// pour tester si la base est dispo
 
-	if ($recherche || 
-	    ($_SERVER['REQUEST_METHOD'] == 'POST') ||
-	    ($GLOBALS['var_mode'] &&
-		($GLOBALS['_COOKIE']['spip_session']
-		 || $GLOBALS['_COOKIE']['spip_admin']
-		 || @file_exists(_ACCESS_FILE_NAME))))
+	include_ecrire('inc_connect.php3');
+
+	// cas ignorant le cache car complement dynamique
+
+	if ($recherche || $_SERVER['REQUEST_METHOD'] == 'POST')
 	  {
-		include_ecrire('inc_connect.php3');
 		$use_cache = -1;
 		return "";
 	  }
-
+	
 	$chemin_cache = generer_nom_fichier_cache($contexte, $fond);
 
 	// cas sans jamais de calcul pour raison interne
@@ -174,12 +172,19 @@ function determiner_cache(&$use_cache, $contexte,$fond) {
 
 	// Faut-il effacer des pages invalidees (en particulier ce cache-ci) ?
 	if ($GLOBALS['meta']['invalider'] AND $GLOBALS['db_ok']) {
-		include_ecrire('inc_connect.php3');
 		include_ecrire('inc_meta.php3');
 		lire_metas();
 		retire_caches($chemin_cache);
 	}
 
+	// cas sans jamais de cache pour raison interne
+	if ($GLOBALS['var_mode'] &&
+		($GLOBALS['_COOKIE']['spip_session']
+		 || $GLOBALS['_COOKIE']['spip_admin']
+		 || @file_exists(_ACCESS_FILE_NAME))) {
+	    supprimer_fichier($chemin_cache);
+	}
+
 	$use_cache = cache_valide($chemin_cache);
 
 	if (!$use_cache) return $chemin_cache;