diff --git a/ecrire/inc_surligne.php3 b/ecrire/inc_surligne.php3
index e720c555fa1398154bc266464370bce35f466c1d..806bf8003b872b29b8703aceb367e1710a799830 100644
--- a/ecrire/inc_surligne.php3
+++ b/ecrire/inc_surligne.php3
@@ -5,6 +5,13 @@
 if (defined("_ECRIRE_INC_SURLIGNE")) return;
 define("_ECRIRE_INC_SURLIGNE", "1");
 
+
+// Fonction bidon evitant que PHP optimise les ob_start() vides
+function callback_surligne($texte) {
+	return $texte;
+}
+
+
 // utilise avec ob_start() et ob_get_contents() pour
 // mettre en rouge les mots passes dans $var_recherche
 function surligner_mots($page, $mots) {
@@ -53,7 +60,7 @@ function surligner_mots($page, $mots) {
 		$debut = substr($page, 0, strpos($page, $exp[0])+strlen($exp[0]));
 		$page = substr($page, strlen($debut));
 	} else
-		 $debut = '';
+		$debut = '';
 
 	// Remplacer une occurence de mot maxi par espace inter-tag (max 1 par paragraphe, sauf italiques etc.)
 	// se limiter a 4 remplacements pour ne pas bouffer le CPU
@@ -68,11 +75,10 @@ function surligner_mots($page, $mots) {
 
 // debut et fin, appeles depuis les squelettes
 function debut_surligne($mots, $mode_surligne) {
-
 	switch ($mode_surligne) {
 		case 'auto' :	// on arrive du debut de la page, on ne touche pas au buffer
 			ob_end_flush();
-			ob_start("");
+			ob_start('callback_surligne');
 			$mode_surligne = 'actif';
 			break;
 
@@ -80,12 +86,12 @@ function debut_surligne($mots, $mode_surligne) {
 			$la_page = surligner_mots(ob_get_contents(), $mots);
 			ob_end_clean();
 			echo $la_page;
-			ob_start("");
+			ob_start('callback_surligne');
 			$mode_surligne = 'actif';
 			break;
 
 		case 'inactif' :	// il n'y a pas de buffer
-			ob_start("");
+			ob_start('callback_surligne');
 			$mode_surligne = 'actif';
 			break;
 
@@ -97,13 +103,12 @@ function debut_surligne($mots, $mode_surligne) {
 }
 
 function fin_surligne($mots, $mode_surligne) {
-
 	switch ($mode_surligne) {
 		case 'auto' :	// on arrive du debut de la page, on s'occupe du buffer
 			$la_page = surligner_mots(ob_get_contents(), $mots);
 			ob_end_clean();
 			echo $la_page;
-			ob_start("");
+			ob_start('callback_surligne');
 			$mode_surligne = 'inactif';
 			break;
 
diff --git a/inc-public-global.php3 b/inc-public-global.php3
index 1c24957251cf9f51aed7f882fda5205fcc1e5cdd..aae4628327c3946839cece691509da6ea7ec21c1 100644
--- a/inc-public-global.php3
+++ b/inc-public-global.php3
@@ -135,8 +135,9 @@ if (!$use_cache) {
 if ($var_recherche AND $flag_ob AND $flag_pcre AND !$flag_preserver AND !$mode_surligne) {
 	include_ecrire("inc_surligne.php3");
 	$mode_surligne = 'auto';
-	ob_start("");
-} else {
+	ob_start('callback_surligne');
+}
+else {
 	unset ($var_recherche);
 	unset ($mode_surligne);
 }