diff --git a/ecrire/inc/revisions.php b/ecrire/inc/revisions.php
index 5ac2f3a45af521c1d98a230a5444dbcd41ae2d4e..23323f5c34fe152920321527082ee9eed73e92b0 100644
--- a/ecrire/inc/revisions.php
+++ b/ecrire/inc/revisions.php
@@ -490,8 +490,9 @@ function propre_diff($texte) {
 
 	// [ ...<span diff> -> lien ]
 	// < tag <span diff> >
-	$texte = preg_replace(',<([^>]*@@@SPIP_DIFF[0-9]+@@@),',
+	$texte = preg_replace(',<([^>]*?@@@SPIP_DIFF[0-9]+@@@),',
 		'&lt;\1', $texte);
+		var_dump($texte);
 	# attention ici astuce seulement deux @@ finals car on doit eviter
 	# deux patterns a suivre, afin de pouvoir prendre [ mais eviter [[
 	$texte = preg_replace(',(^|[^[])[[]([^[\]]*@@@SPIP_DIFF[0-9]+@@),',
@@ -528,6 +529,9 @@ function propre_diff($texte) {
 		$texte = str_replace('@@@SPIP_DIFF'.$c.'@@@', $bal, $texte);
 		$GLOBALS['les_notes'] = str_replace('@@@SPIP_DIFF'.$c.'@@@', $$bal, $GLOBALS['les_notes']);
 	}
+	// quand le dernier tag est ouvrant le refermer ...
+	$reg = end($regs);
+	if (!$reg[1]) $texte.="</$reg[2]>";
 
 	return $texte;
 }