diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 465118b5e8da140b2a3f133022de4530a1b8d6b8..e116ff0d93ed3c45dcfaed3b00c68cf6d6da38ad 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -1700,7 +1700,6 @@ function erreur_squelette($message='', $lieu='') {
  */
 // http://doc.spip.org/@recuperer_fond
 function recuperer_fond($fond, $contexte=array(), $options = array(), $connect='') {
-	static $var_inclure=false;
 	include_spip('public/assembler');
 	// assurer la compat avec l'ancienne syntaxe
 	// (trim etait le 3eme argument, par defaut a true)
@@ -1737,13 +1736,6 @@ function recuperer_fond($fond, $contexte=array(), $options = array(), $connect='
 		if (isset($options['ajax'])AND $options['ajax'])
 			$page['texte'] = encoder_contexte_ajax(array_merge($contexte,array('fond'=>$f)),'',$page['texte']);
 
-		if ($GLOBALS['var_inclure']){
-			$page['texte'] = 
-				"<div class='inclure_blocs'><h6>".$page['sourcefile']."</h6>".$page['texte']."</div>"
-				. ($var_inclure?"":"<script type='text/javascript'>jQuery(function(){jQuery('.inclure_blocs > h6:first-child').hover(function(){jQuery(this).parent().addClass('hover')},function(){jQuery(this).parent().removeClass('hover')})});</script>");
-			$var_inclure = true;
-		}
-
 		$page = pipeline('recuperer_fond',array(
 			'args'=>array('fond'=>$fond,'contexte'=>$contexte,'options'=>$options,'connect'=>$connect),
 			'data'=>$page
diff --git a/ecrire/public/parametrer.php b/ecrire/public/parametrer.php
index a8df70e24145bd5ac76a5141017502cc80770336..efd35b9c421008c23fae2f4ced655836c49e432f 100644
--- a/ecrire/public/parametrer.php
+++ b/ecrire/public/parametrer.php
@@ -144,8 +144,16 @@ function public_parametrer_dist($fond, $contexte='', $cache='', $connect='')  {
 
 		$page['contexte'] = $contexte;
 		// faire remonter le fichier source
-		if ($GLOBALS['var_inclure'])
+		//if ($GLOBALS['var_inclure'])
+
+		static $var_inclure = false;
+		if ($GLOBALS['var_inclure']){
 			$page['sourcefile'] = $sourcefile;
+			$page['texte'] =
+				"<div class='inclure_blocs'><h6>".$page['sourcefile']."</h6>".$page['texte']."</div>"
+				. ($var_inclure?"":"<script type='text/javascript'>jQuery(function(){jQuery('.inclure_blocs > h6:first-child').hover(function(){jQuery(this).parent().addClass('hover')},function(){jQuery(this).parent().removeClass('hover')})});</script>");
+			$var_inclure = true;
+		}
 
 		// Si un modele contenait #SESSION, on note l'info dans $page
 		if (isset($GLOBALS['cache_utilise_session'])) {
diff --git a/prive/formulaires/editer_auteur.php b/prive/formulaires/editer_auteur.php
index 93411b3751a19311eb3bad4d7c928f9c1d461534..ab5d68904b6badfdccd76889a49ab843765b0dcd 100644
--- a/prive/formulaires/editer_auteur.php
+++ b/prive/formulaires/editer_auteur.php
@@ -55,7 +55,15 @@ function formulaires_editer_auteur_verifier_dist($id_auteur='new', $retour='', $
 
 	if ($email = _request('email')){
 		include_spip('inc/filtres');
-		if (!email_valide($email)){
+		// un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
+		if (!autoriser('modifier','auteur',$id_auteur,null,array('statut'=>'?'))
+			AND $GLOBALS['visiteur_session']['id_auteur']==$id_auteur
+			AND !strlen(trim($email))
+			AND $email!=($email_ancien=sql_getfetsel('email', 'spip_auteurs', 'id_auteur='.intval($id_auteur)))
+			){
+			$erreurs['email'] = _T('form_email_non_valide');
+		}
+		else if (!email_valide($email)){
 			$erreurs['email'] = _T('form_email_non_valide');
 		}
 	}
@@ -94,15 +102,14 @@ function formulaires_editer_auteur_traiter_dist($id_auteur='new', $retour='', $l
 		// son clic sur l'url du message permettre de confirmer le changement
 		// et de revenir sur son profil
 		if ($GLOBALS['visiteur_session']['id_auteur']==$id_auteur
-			AND $email_nouveau!=sql_getfetsel('email', 'spip_auteurs', 'id_auteur='.intval($id_auteur))){
+			AND $email_nouveau!=($email_ancien=sql_getfetsel('email', 'spip_auteurs', 'id_auteur='.intval($id_auteur)))){
 			$envoyer_mail = charger_fonction('envoyer_mail','inc');
-			$envoyer_mail(
-							$email_nouveau,
-							_T('form_auteur_confirmation'),
-							_T('form_auteur_mail_confirmation',
-											array('url'=>generer_action_auteur('confirmer_email', $email_nouveau,parametre_url($retour, 'email_modif','ok'))))
-			);
+			$texte = _T('form_auteur_mail_confirmation',
+											array('url'=>generer_action_auteur('confirmer_email', $email_nouveau,parametre_url($retour, 'email_modif','ok'))));
+			$envoyer_mail($email_nouveau,_T('form_auteur_confirmation'),$texte);
 			set_request('email_confirm',$email_nouveau);
+			if ($email_ancien)
+				$envoyer_mail($email_ancien,_T('form_auteur_confirmation'),_T('form_auteur_envoi_mail_confirmation',array('email'=>$email_nouveau)));
 			$retour = parametre_url($retour, 'email_confirm',$email_nouveau);
 		}
 	}
diff --git a/squelettes-dist/formulaires/administration.html b/squelettes-dist/formulaires/administration.html
index 33a69231cbf37ae951614aee81d71e014b03e3ac..ef56fb6923b03b4207394342b9f1922035445121 100644
--- a/squelettes-dist/formulaires/administration.html
+++ b/squelettes-dist/formulaires/administration.html
@@ -1,4 +1,4 @@
- <div[ class="(#ENV{divclass,spip-admin-bloc})"] dir="#LANG_DIR">[
+ <div[ class="(#ENV{divclass,spip-admin-bloc})"] id='spip-admin' dir="#LANG_DIR">[
 	<a href="(#ENV{analyser})" class="spip-admin-boutons"
 		id="analyser"><:analyse_xml:>[ ((#ENV{xhtml_error}))]</a>]
 	[<a href="[(#ENV{voir_article})]" class="spip-admin-boutons"