diff --git a/ecrire/inc_filtres.php3 b/ecrire/inc_filtres.php3
index cedd4dbc0e743b52009ecbbf06b5d3078ba5cb5d..2b2b48d7291f215990c8bf0b1996d8f552316811 100644
--- a/ecrire/inc_filtres.php3
+++ b/ecrire/inc_filtres.php3
@@ -98,8 +98,10 @@ function texte_backend($texte) {
 	$texte = filtrer_entites($texte);
 
 	// " -> " et tout ce genre de choses
+	// contourner bug windows ou char(160) fait partie de la regexp \s
+	$u = (lire_meta('charset')=='utf-8') ? 'u':'';
 	$texte = str_replace(" ", " ", $texte);
-	$texte = preg_replace("/[[:space:]][[:space:]]+/", " ", $texte);
+	$texte = preg_replace("/\s\s+/$u", " ", $texte);
 	$texte = entites_html($texte);
 
 	// verifier le charset
@@ -140,7 +142,8 @@ function echapper_tags($texte, $rempl = "") {
 
 // Convertit un texte HTML en texte brut
 function textebrut($texte) {
-	$texte = preg_replace("/[[:space:]]+/", " ", $texte);
+	$u = (lire_meta('charset')=='utf-8') ? 'u':'';
+	$texte = preg_replace("/\s+/$u", " ", $texte);
 	$texte = preg_replace("/<(p|br)( [^>]*)?".">/i", "\n\n", $texte);
 	$texte = preg_replace("/^\n+/", "", $texte);
 	$texte = preg_replace("/\n+$/", "", $texte);