diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php
index 4a984d6c59b65e083efb8b778ff054076c47f43d..13aeb8a8ca59818bab33dab347a3b86e73197991 100644
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -87,16 +87,18 @@ function filtre_text_csv_dist($t)
 // http://doc.spip.org/@filtre_text_html_dist
 function filtre_text_html_dist($t)
 {
-	if (!preg_match(',<head>(.*?)</head>.*<body[^>]*>(.*)</body>,is', $t, $r))
+	if (!preg_match(',^(.*?)<body[^>]*>(.*)</body>,is', $t, $r))
 		return filtre_text_txt_dist($t);
 
 	list(,$h,$t) = $r;
+
 	$style = '';
 	// recuperer les styles internes
-	if (preg_match_all(',<style>([^>]*)</style>,is', $h, $r, PREG_PATTERN_ORDER))
+	if (preg_match_all(',<style>(.*?)</style>,is', $h, $r, PREG_PATTERN_ORDER))
 		$style =  join("\n",$r[1]);
 	// ... et externes
-	if (preg_match_all(',<link[^>]*text/css[^>]*>,is', $h, $r, PREG_PATTERN_ORDER))
+
+	if (preg_match_all(',<link[^>]+type=.text/css[^>]*>,is', $h, $r, PREG_PATTERN_ORDER))
 		foreach($r[0] as $l) {
 			preg_match("/href='([^']*)'/", str_replace('"',"'",$l), $m);
 			$style .= "\n/* $l */\n"
diff --git a/ecrire/inc/iconifier.php b/ecrire/inc/iconifier.php
index 30fe731ee698f3722762f29c280fc1c15a88f4dc..97634ed8277a36d7f0dbab3abb51586f29078f91 100644
--- a/ecrire/inc/iconifier.php
+++ b/ecrire/inc/iconifier.php
@@ -64,7 +64,7 @@ function inc_iconifier_dist($id_objet, $id,  $script, $visible=false, $flag_modi
 			. fin_cadre_relief(true);
 
 		if(_request("exec")!="iconifier") {
-		  $js .= http_script(_DIR_JAVASCRIPT . 'async_upload.js')
+		  $js .= http_script('', _DIR_JAVASCRIPT . 'async_upload.js')
 		    . http_script('$("form.form_upload_icon").async_upload(async_upload_icon)');
 
 		} else $js = "";