diff --git a/ecrire/inc/import_insere.php b/ecrire/inc/import_insere.php
index cbd6c45d4c0e76c38f39d26285df85f569da4f4e..412a39b2974cf106af128ab0cc1e2442d0ef6981 100644
--- a/ecrire/inc/import_insere.php
+++ b/ecrire/inc/import_insere.php
@@ -204,9 +204,12 @@ function importe_translate_maj($k, $v)
 	return $g;
 }
 
+define('_RACCOURCI_MODELE_ALL', '/' . _RACCOURCI_MODELE .'/isS');
+
 // http://doc.spip.org/@importe_raccourci
 function importe_raccourci($k, $v)
 {
+
 	if (preg_match_all(_RACCOURCI_LIEN, $v, $m, PREG_SET_ORDER)) {
 		foreach ($m as $regs) {
 		  // supprimer 'http://' ou 'mailto:'
@@ -223,6 +226,16 @@ function importe_raccourci($k, $v)
 			}
 		}
 	}
+
+	if (preg_match_all(_RACCOURCI_MODELE_ALL, $v, $m, PREG_SET_ORDER)) {
+		foreach ($m as $regs) {
+			$g = importe_translate_maj('id_document', $regs[3]);
+			if ($g != $regs[3]) {
+				$rac = '<' . $regs[2] . $g . $regs[4] . '>' . $regs[5];
+				$v = str_replace($regs[0], $rac, $v);
+			}
+		}
+	}
 	return $v;
 }
 
diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php
index 3d19aa953a3de3936989612d66c76018d2d4bca8..58afad357af25dda3b5fa3dfaf760ea23972bafe 100644
--- a/ecrire/inc/texte.php
+++ b/ecrire/inc/texte.php
@@ -1011,7 +1011,7 @@ function traiter_listes ($texte) {
 // http://doc.spip.org/@supprime_img
 function supprime_img($letexte) {
 	$message = _T('img_indisponible');
-	return preg_replace(',<(img|doc|emb)([0-9]+)(\|([^>]*))?'.'>,iS',
+	return preg_replace(',<(img|doc|emb)([0-9]+)(\|([^>]*))?'.'>,i',
 		"($message)", $letexte);
 }
 
@@ -1022,6 +1022,17 @@ 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
+
+define('_RACCOURCI_MODELE', 
+	 '(<([a-z_-]{3,})' # <modele
+	.'\s*([0-9]*)\s*' # id
+	.'([|](?:<[^<>]*>|[^>])*)?' # |arguments (y compris des tags <...>)
+	.'>)' # fin du modele >
+	.'\s*(<\/a>)?' # eventuel </a>
+       );
+
+define('_RACCOURCI_MODELE_DEBUT', '/^' . _RACCOURCI_MODELE .'/is');
+
 function traiter_modeles($texte, $doublons=false, $echap='') {
 	// detecter les modeles (rapide)
 	if (preg_match_all('/<[a-z_-]{3,}\s*[0-9|]+/iS',
@@ -1031,15 +1042,7 @@ function traiter_modeles($texte, $doublons=false, $echap='') {
 			// Recuperer l'appel complet (y compris un eventuel lien)
 			// $regs : 1 => modele, 2 => type, 3 => id, 4 => params, 5 => a
 			$a = strpos($texte,$match[0]);
-			preg_match(
-			'/^' #debut
-			.'(<([a-z_-]{3,})' # <modele
-			.'\s*([0-9]*)\s*' # id
-			.'([|](?:<[^<>]*>|[^>])*)?' # |arguments (y compris des tags <...>)
-			.'>)' # fin du modele >
-			.'\s*(<\/a>)?' # eventuel </a>
-			.'/isS',
-			substr($texte, $a), $regs);
+			preg_match(_RACCOURCI_MODELE_DEBUT, substr($texte, $a), $regs);
 
 			if ($regs[5] AND preg_match(
 			',<a\s[^<>]*>\s*$,i', substr($texte, 0, $a), $r)) {