diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php
index 12e7ea199650e1fd5e249a25ac1d7777579a760d..cd3bc0359964acc3d2ee5153d64339e3b8b5c334 100644
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -238,11 +238,13 @@ function hauteur($img) {
 // et au cas particulier de & qui devient & dans les url
 // http://doc.spip.org/@corriger_entites_html
 function corriger_entites_html($texte) {
+	if (strpos($texte,'&') === false) return $texte;
 	return preg_replace(',&(#[0-9][0-9][0-9]+;|amp;),iS', '&\1', $texte);
 }
 // idem mais corriger aussi les é en é
 // http://doc.spip.org/@corriger_toutes_entites_html
 function corriger_toutes_entites_html($texte) {
+	if (strpos($texte,'&') === false) return $texte;
 	return preg_replace(',&(#?[a-z0-9]+;),S', '&\1', $texte);
 }
 
@@ -254,6 +256,7 @@ function entites_html($texte) {
 // Transformer les é dans le charset local
 // http://doc.spip.org/@filtrer_entites
 function filtrer_entites($texte) {
+	if (strpos($texte,'&') === false) return $texte;
 #	include_spip('inc/charsets');
 	// filtrer
 	$texte = html2unicode($texte);