diff --git a/inc-cache.php3 b/inc-cache.php3
index e27bae4b04b459c1a2153418a32dc68d3ff90f61..1ce2c8538d31d22751dd079779a701e0d3302c1d 100644
--- a/inc-cache.php3
+++ b/inc-cache.php3
@@ -198,20 +198,21 @@ function purger_squelettes() {
 
 // Determination du fichier cache (si besoin)
 function determiner_cache($delais, &$use_cache, &$chemin_cache) {
-	global $_POST;
+	global $_SERVER;
+
+	$post = ($_SERVER['REQUEST_METHOD'] == 'POST');
 
 	// Le fichier cache est-il valide ?
-	$use_cache = ($delais != 0 and !count($_POST));
-	if ($use_cache)	$use_cache = utiliser_cache($chemin_cache, $delais);
+	if ($delais<>0 AND !$post)
+		$use_cache = utiliser_cache($chemin_cache, $delais);
 
 	// Sinon, tester qu'on a la connexion a la base
 	if (!$use_cache) {
 		include_local(_FILE_CONNECT);
 		if (!$GLOBALS['db_ok']) {
 			if (@file_exists($chemin_cache)) 
-			  $use_cache = 1; // passer outre
-			else
-			  {
+				$use_cache = 1; // passer outre
+			else {
 				spip_log("Erreur base de donnees & "
 					. "impossible utiliser $chemin_cache");
 				if (!$GLOBALS['flag_preserver']) {
@@ -231,6 +232,13 @@ function determiner_cache($delais, &$use_cache, &$chemin_cache) {
 				define ('spip_interdire_cache', true);
 			  }
 		}
+
+		// En cas de POST (et si la connexion est ok) supprimer le cache
+		// histoire de faciliter la gestion de certaines balises dynamiques
+		else if ($post AND $chemin_cache) {
+			supprimer_fichier($chemin_cache);
+		}
+
 	}
 }