diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php
index b417b832304dc4f305d3bf5cc266ae4562f3fddd..68f2474ad2ac9dae24e0403eb71fc1c340f19bb7 100644
--- a/ecrire/inc/documents.php
+++ b/ecrire/inc/documents.php
@@ -44,7 +44,12 @@ function get_spip_doc($fichier) {
 	return $fichier;
 }
 
-// Filtre pour #FICHIER
+// Constante indiquant le charset probable des documents non utf-8 joints
+
+@define('CHARSET_JOINT', 'iso-8859-1');
+
+// Filtre pour #FICHIER permettant d'incruster le contenu d'un document
+// Si 2e arg fourni, conversion dans le charset du site si possible
 
 // http://doc.spip.org/@contenu_document
 function contenu_document($arg, $charset='')
@@ -64,9 +69,13 @@ function contenu_document($arg, $charset='')
 	}
 
 	$r = spip_file_get_contents($f);
+	
 	if ($charset) {
-	  include_spip('inc/charset');
-	  $r = importer_charset($r, $charset);
+		include_spip('inc/charset');
+		if ($charset !== 'auto') {
+			$r = importer_charset($r, $charset);
+		} elseif ($GLOBALS['meta']['charset'] == 'utf-8' AND !is_utf8($r))
+			$r = importer_charset($r, CHARSET_JOINT);
 	}
 	return $r;
 }
diff --git a/prive/modeles/text.html b/prive/modeles/text.html
index 0b3e5914d49dac0380056e4008277c422f02ead2..192e022eadfa1a925e41eedaccb20b621ea8f692 100644
--- a/prive/modeles/text.html
+++ b/prive/modeles/text.html
@@ -1,3 +1,3 @@
 <BOUCLE_tous (DOCUMENTS types_documents) {id_document=#ID} {tout}
-	>[(#FICHIER|contenu_document{#ENV{charset}}|appliquer_filtre{#MIME_TYPE,filtre_text_txt_dist}
+	>[(#FICHIER|contenu_document{#ENV{charset,auto}}|appliquer_filtre{#MIME_TYPE,filtre_text_txt_dist}
 )]</BOUCLE_tous>