diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php
index 551ec54fb9d49ca92a90734370aa47744cd4f1b9..bf29ae51ade60a832b42f8e44b91b6646d1360a1 100644
--- a/ecrire/inc/texte.php
+++ b/ecrire/inc/texte.php
@@ -601,7 +601,9 @@ function typo($letexte, $echapper=true) {
 	//
 	// NOTE : dans propre() ceci s'execute avant les tableaux a cause du "|",
 	// et apres les liens a cause du traitement de [<imgXX|right>->URL]
-	$letexte = traiter_modeles($letexte);
+	$letexte = traiter_modeles($mem = $letexte, false, 'TYPO');
+	if ($letexte != $mem) $echapper = true;
+	unset($mem);
 
 	// Appeler les fonctions de post-traitement
 	$letexte = pipeline('post_typo', $letexte);
@@ -1014,7 +1016,7 @@ function supprime_img($letexte) {
 // Si $doublons==true, on repere les documents sans calculer les modeles
 // mais on renvoie les params (pour l'indexation par le moteur de recherche)
 // http://doc.spip.org/@traiter_modeles
-function traiter_modeles($texte, $doublons=false) {
+function traiter_modeles($texte, $doublons=false, $echap='') {
 	// detecter les modeles (rapide)
 	if (preg_match_all('/<[a-z_-]{3,}\s*[0-9|]+/iS',
 	$texte, $matches, PREG_SET_ORDER)) {
@@ -1056,7 +1058,7 @@ function traiter_modeles($texte, $doublons=false) {
 
 				// le remplacer dans le texte
 				if ($modele !== false) {
-					$rempl = code_echappement($modele);
+					$rempl = code_echappement($modele, $echap);
 					$texte = substr($texte, 0, $a)
 						. $rempl
 						. substr($texte, $a+strlen($cherche));