diff --git a/ecrire/inc_texte.php3 b/ecrire/inc_texte.php3
index c8e5db35abc73fb106b157fb6668e71651379e49..e7f271a8103d4534895cabd06f2a24716338e833 100644
--- a/ecrire/inc_texte.php3
+++ b/ecrire/inc_texte.php3
@@ -330,6 +330,10 @@ function interdire_scripts($source) {
 function safehtml($t) {
 	static $process, $test;
 
+	# attention safehtml nettoie deux ou trois caracteres de plus. A voir
+	if (strpos($t,'<')===false)
+		return str_replace("\x00", '', $t);
+
 	if (!$test) {
 		define_once('XML_HTMLSAX3', _DIR_RESTREINT."safehtml/classes/");
 		if (@file_exists(XML_HTMLSAX3.'safehtml.php')) {
@@ -343,7 +347,15 @@ function safehtml($t) {
 	}
 
 	if ($test > 0) {
-		$process->clear(); # vider le buffer _xhtml de safehtml
+		# reset ($process->clear() ne vide que _xhtml...),
+		# on doit pouvoir programmer ca plus propremement
+		$process->$_xhtml = '';
+		$process->$_counter = array();
+		$process->$_stack = array();
+		$process->$_dcCounter = array();
+		$process->$_dcStack = array();
+		$process->$_listScope = 0; 
+		$process->$_liStack = array();
 		$t = $process->parse($t);
 	}