diff --git a/ecrire/exec/articles_edit.php b/ecrire/exec/articles_edit.php
index 0e1e5c470244b7fba28e11ecf94b4e403080746b..1787be91628a1f345cde4e0e4f1f7dbd119f5709 100644
--- a/ecrire/exec/articles_edit.php
+++ b/ecrire/exec/articles_edit.php
@@ -147,7 +147,7 @@ echo "<P><HR><P>";
 	// (et donc: pas de lien de traduction)
 	if ($lier_trad) $id_article = "";
 	
-	echo generer_url_post_ecrire("articles", ($id_article ? "id_article=$id_article" : ""),'formulaire');
+	echo generer_url_post_ecrire("articles", ($id_article ? "id_article=$id_article" : ""),'formulaire','',' onchange="disable_other_forms(this);"');
 
 	if ($new == 'oui')
 		echo "<INPUT TYPE='Hidden' NAME='new' VALUE='oui'>";
@@ -160,7 +160,11 @@ echo "<P><HR><P>";
 	if (($options == "avancees" AND $articles_surtitre) OR $surtitre) {
 		echo "<B>"._T('texte_sur_titre')."</B>";
 		echo aide ("arttitre");
-		echo "<BR><INPUT TYPE='text' NAME='surtitre' CLASS='forml' VALUE=\"$surtitre\" SIZE='40'><P>";
+		echo "<BR><INPUT TYPE='text' NAME='surtitre' CLASS='forml' VALUE=\"$surtitre\" SIZE='40'"
+// Pour faire fonctionner le onchange sur Safari il faudrait modifier
+// chaque input. Conclusion : c'est la mauvaise methode.
+// .' onchange="disable_other_forms(this.parentNode);"'.
+."><P>";
 	}
 	else {
 		echo "<INPUT TYPE='hidden' NAME='surtitre' VALUE=\"$surtitre\" >";
diff --git a/ecrire/img_pack/presentation.js b/ecrire/img_pack/presentation.js
index 2b1a4f63e518a3abcd602332ea8b31a1dff0a447..cfd7ef4b75cd9ffe263ce203e6b1d93ee1db5a45 100644
--- a/ecrire/img_pack/presentation.js
+++ b/ecrire/img_pack/presentation.js
@@ -254,3 +254,17 @@ function puce_statut(selection){
 		return "puce-poubelle.gif";
 	}
 }
+
+// lorsqu'on touche a un formulaire, desactiver les autres
+// (a voir : onchange=... fonctionne sous FF, mais pas Safari)
+function disable_other_forms(me) {
+	var items = document.getElementsByTagName('form');
+	for (var j = 0; j < items.length; j++) {
+		if (items[j] != me) {
+			var fields = items[j].getElementsByTagName('input');
+			for (var k = 0; k < fields.length; k++) {
+				fields[k].disabled=true;
+			}
+		}
+	}
+}
diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php
index 340dd52a702f9d6ff20194aebae78e08e0faac57..b337bb1e8a2bfe1728ee2aca11bc59c2ab953002 100644
--- a/ecrire/inc/documents.php
+++ b/ecrire/inc/documents.php
@@ -581,7 +581,8 @@ function construire_upload($corps, $args, $enctype='')
 	return "\n<form method='post' action='" . generer_url_action('joindre') .
 	  "'" .
 	  (!$enctype ? '' : " enctype='$enctype'") .
-	  " style='border: 0px; margin: 0px;'>\n" .
+	  " style='border: 0px; margin: 0px;'
+	  >\n" .
 	  "<div>" .
   	  "\n<input type='hidden' name='action' value='joindre' />" .
 	  $res . $corps . "</div></form>";
@@ -991,7 +992,6 @@ function afficher_documents_colonne($id, $type="article", $flag_modif = true) {
 	echo "<a name='images'></a>\n";
 	$titre_cadre = _T('bouton_ajouter_image').aide("ins_img");
 	debut_cadre_relief("image-24.gif", false, "creer.gif", $titre_cadre);
-
 	echo afficher_upload($id, _T('info_telecharger'),'','vignette',$type);
 
 	fin_cadre_relief();
diff --git a/ecrire/inc/layer.php b/ecrire/inc/layer.php
index 75ef6461798ff0f02420c0e257f06a1598aa0192..f2f4d2ee5aadd8e51921befca4aa1c400e45ea3e 100644
--- a/ecrire/inc/layer.php
+++ b/ecrire/inc/layer.php
@@ -32,7 +32,7 @@ function debut_block_invisible($nom_block){
 	}
 	
 	return http_script("vis['".$numero_block["$nom_block"]."'] = 'hide';
-document.write('<div id=\"Layer".$numero_block["$nom_block"]."\" style=\"display: none; margin-top: 1;\">');",
+document.write('<div id=\"Layer".$numero_block["$nom_block"]."\" style=\"display: none; margin-top: 1px;\">');",
 			      '',
 			   "<div id='Layer".$numero_block["$nom_block"]."' style='display: block;'>");
 
diff --git a/ecrire/inc/minipres.php b/ecrire/inc/minipres.php
index eeca797b8ffa404a5646399e26cd2b3431d78b1e..4d241048437975820cc3da010b27ebaa9a421355 100644
--- a/ecrire/inc/minipres.php
+++ b/ecrire/inc/minipres.php
@@ -192,11 +192,11 @@ function http_style_background($img, $att='')
 
 // Attention: generer_url_ecrire peut rajouter des args
 
-function generer_url_post_ecrire($script, $args='', $name='', $ancre='') {
+function generer_url_post_ecrire($script, $args='', $name='', $ancre='', $onchange='') {
 	include_spip('inc/filtres');
 	$action = generer_url_ecrire($script, $args);
 	if ($name) $name = " name='$name'";
-	return "\n<form action='$action$ancre'$name method='post'>"
+	return "\n<form action='$action$ancre'$name method='post'$onchange>"
 	.form_hidden($action);
 }
 
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index 0d0b6fca15d2d303a17a40daac550871bde86a89..f15f1655a20b47e90340303952dbddba244b25d2 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -98,7 +98,7 @@ function debut_cadre($style, $icone = "", $fonction = "", $titre = "") {
 	if ($spip_display != 1 AND $spip_display != 4 AND strlen($icone) > 1) {
 		$ret .= "<div style='position: absolute; top: -16px; $spip_lang_left: 10px;'>";
 		if ($fonction) {
-			$ret .= "<div " . http_style_background($icone, "no-repeat; padding: 0px; margin: 0px");
+			$ret .= "<div " . http_style_background($icone, "no-repeat; padding: 0px; margin: 0px") . ">";
 			$ret .= http_img_pack($fonction, "", "");
 			$ret .= "</div>";
 		}
@@ -2036,8 +2036,8 @@ function init_body($rubrique='asuivre', $sous_rubrique='asuivre', $onLoad='', $i
 	$id_rubrique = intval($id_rubrique);
 
 	echo pipeline('body_prive',"<body ". _ATTRIBUTES_BODY
-		. 'onLoad="'
-		. "setActiveStyleSheet('invisible');$browser_verifForm$onLoad"
+		. ' onLoad="'
+		. "forms_manager();setActiveStyleSheet('invisible');$browser_verifForm$onLoad"
 		. '">');
 
 	if ($spip_ecran == "large") $largeur = 974;
@@ -2313,7 +2313,7 @@ if (true /*$gadgets*/) {
 		if (spip_num_rows($vos_articles) > 0) {
 			$gadget .= "<div>&nbsp;</div>";
 			$gadget .= "<div class='bandeau_rubriques' style='z-index: 1;'>";
-			$gadget .= bandeau_titre_boite2(afficher_plus(generer_url_ecrire("articles_page",""))._T('info_en_cours_validation'), "article-24.gif", '', '', false);
+			$gadget .= bandeau_titre_boite2(afficher_plus(generer_url_ecrire("articles_page",""))._T('info_en_cours_validation'), "article-24.gif", $couleur_foncee, 'white', false);
 			$gadget .= "\n<div class='plan-articles'>\n";
 			while($row = spip_fetch_array($vos_articles)) {
 				$id_article = $row['id_article'];
@@ -2330,7 +2330,7 @@ if (true /*$gadgets*/) {
 		if (spip_num_rows($vos_articles) > 0) {
 			$gadget .= "<div>&nbsp;</div>";
 			$gadget .= "<div class='bandeau_rubriques' style='z-index: 1;'>";
-			$gadget .= bandeau_titre_boite2(afficher_plus('./')._T('info_articles_proposes'), "article-24.gif", '', '', false);
+			$gadget .= bandeau_titre_boite2(afficher_plus('./')._T('info_articles_proposes'), "article-24.gif", $couleur_foncee, 'white', false);
 			$gadget .= "<div class='plan-articles'>";
 			while($row = spip_fetch_array($vos_articles)) {
 				$id_article = $row['id_article'];