diff --git a/ecrire/inc_flock.php3 b/ecrire/inc_flock.php3
index 96b415d8362de8191bb159d49fa0b6188a2692f0..3c11ca317fcb4a46c79d75b91c175f2a0c8379ce 100644
--- a/ecrire/inc_flock.php3
+++ b/ecrire/inc_flock.php3
@@ -78,7 +78,7 @@ function ecrire_fichier ($fichier, $contenu) {
 	// Ne rien faire si on est en preview, debug, ou si une erreur
 	// grave s'est presentee (compilation du squelette, MySQL, etc)
 	if ($GLOBALS['var_preview'] OR ($GLOBALS['var_mode'] == 'debug')
-	OR defined('spip_erreur_fatale') OR defined('spip_interdire_cache'))
+	OR defined('spip_interdire_cache'))
 		return;
 
 	$gzip = (substr($fichier, -3) == '.gz');
diff --git a/inc-cache.php3 b/inc-cache.php3
index 63c4b01222f3ea9c8640ce0f70a118e96215aa68..7b3deb9c47b5de204f50cd49ca8327ae3b4e17c6 100644
--- a/inc-cache.php3
+++ b/inc-cache.php3
@@ -223,19 +223,26 @@ function determiner_cache($delais, &$use_cache, &$chemin_cache) {
 					. "impossible utiliser $chemin_cache");
 				if (!$GLOBALS['flag_preserver']) {
 					include_ecrire('inc_presentation.php3');
-					install_debut_html(_T('info_travaux_titre'));
-					echo _T('titre_probleme_technique');
-					install_fin_html();
+					if (!headers_sent()) {
+						install_debut_html(_T('info_travaux_titre'));
+						echo _T('titre_probleme_technique');
+						install_fin_html();
+					} else
+						echo _T('titre_probleme_technique');
 				}
-				exit;
+				// ne plus rien signaler, ne pas mettre en cache ...
+				$GLOBALS['flag_preserver'] = true;
+				define ('spip_interdire_cache', true);
+				// ... mais continuer quand meme
 			}
 		}
 	}
 }
 
-// Fonctions pour le cache des images (vues reduites)
-
 
+//
+// Fonctions pour le cache des images (vues reduites)
+//
 function calculer_taille_dossier ($dir) {
 	$handle = @opendir($dir);
 	if (!$handle) return;