diff --git a/.gitattributes b/.gitattributes
index 54d65ae649b90cf7c5e1cfec5bdab9b3b015e02f..6995455d8b38be37c96be89f1e2c4934f2952b34 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -10,6 +10,7 @@ ecrire/action/charger_plugin.php -text
 ecrire/action/configurer.php -text
 ecrire/action/configurer_previsualiseur.php -text
 ecrire/action/configurer_relayeur.php -text
+ecrire/action/confirmer_email.php -text
 ecrire/action/converser.php -text
 ecrire/action/copier_local.php -text
 ecrire/action/dater.php -text
diff --git a/ecrire/action/confirmer_email.php b/ecrire/action/confirmer_email.php
new file mode 100644
index 0000000000000000000000000000000000000000..8b10316c627d5b848d04717250985ea72b6618a9
--- /dev/null
+++ b/ecrire/action/confirmer_email.php
@@ -0,0 +1,35 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2010                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+
+// Cette action permet de confirmer un changement d'email
+
+function action_confirmer_email_dist()
+{
+	$securiser_action = charger_fonction('securiser_action', 'inc');
+	$arg = $securiser_action();
+
+	include_spip('inc/filtres');
+	if ($GLOBALS['visiteur_session']['id_auteur'] AND email_valide($arg)){
+		$editer_auteur = charger_fonction('editer_auteur','action');
+		auteurs_set($GLOBALS['visiteur_session']['id_auteur'],array('email'=>$arg));
+	}
+	// verifier avant de rediriger pour invalider le message de confirmation
+	// si ca n'a pas marche
+	if ($redirect = _request('redirect') AND !$arg == sql_getfetsel('email', 'spip_auteurs', 'id_auteur='.intval($GLOBALS['visiteur_session'])))
+		$GLOBALS['redirect'] = parametre_url($redirect, 'email_modif','');
+
+}
+
+?>
\ No newline at end of file
diff --git a/ecrire/action/editer_auteur.php b/ecrire/action/editer_auteur.php
index a51d8b6c275d8c53bc6ec37012c31c94c59bd0a9..53960b49adf698229e4208e48c6140736a3c7f38 100644
--- a/ecrire/action/editer_auteur.php
+++ b/ecrire/action/editer_auteur.php
@@ -90,7 +90,7 @@ function insert_auteur($source='spip') {
 
 
 // Appelle toutes les fonctions de modification d'un auteur
-function auteurs_set($id_auteur) {
+function auteurs_set($id_auteur, $set = null) {
 	$err = '';
 
 	$c = array();
@@ -99,7 +99,7 @@ function auteurs_set($id_auteur) {
 		'nom_site','url_site',
 		'imessage','pgp',
 	) as $champ)
-		$c[$champ] = _request($champ);
+		$c[$champ] = _request($champ,$set);
 
 	include_spip('inc/modifier');
 	revision_auteur($id_auteur, $c);
diff --git a/ecrire/inc/auteur_infos.php b/ecrire/inc/auteur_infos.php
index d213b89f7bae010d9be204b351f28da22e5fa4f5..2b268ebb9ec2170a010a9c5f28c460b8fabd3459 100644
--- a/ecrire/inc/auteur_infos.php
+++ b/ecrire/inc/auteur_infos.php
@@ -185,6 +185,14 @@ function legender_auteur_voir($auteur) {
 		$contenu_auteur .= "<div>"._T('email_2')
 			." <b><a href='mailto:".htmlspecialchars($auteur['email'])."'>"
 			.$auteur['email']."</a></b></div>";
+	// message d'information d'envoi d'email pour modif et de confirmation
+	// on ne fait ici qu'informer, sans aucune action
+	if ($email = _request('email_confirm')){
+		$contenu_auteur .= "<p><strong>"._T('form_auteur_envoi_mail_confirmation',array('email'=>$email))."</strong></p>";
+	}
+	elseif (_request('email_modif')==='ok'){
+		$contenu_auteur .= "<p><strong>"._T('form_auteur_email_modifie')."</strong></p>";
+	}
 
 	if ($auteur['url_site']) {
 		if (!$auteur['nom_site'])
diff --git a/ecrire/lang/spip_fr.php b/ecrire/lang/spip_fr.php
index 15166d108a9c7bb0d260108fd6bcb2dab063a47c..7b913208a347544f72d0f3b5a0a94420828b33ea 100644
--- a/ecrire/lang/spip_fr.php
+++ b/ecrire/lang/spip_fr.php
@@ -220,6 +220,18 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 
 // F
 'fichier_introuvable' => 'Fichier @fichier@ introuvable',
+'form_auteur_envoi_mail_confirmation' => 'Un courrier &eacute;lectronique de confirmation vient d\'&ecirc;tre envoy&eacute; &agrave; @email@. Vous devrez visiter l\'adresse Web mentionn&eacute;e dans ce courrier pour valider votre adresse mail.',
+'form_auteur_email_modifie' => 'Votre adresse email a &eacute;t&eacute; modifi&eacute;e.',
+'form_auteur_confirmation' => 'Confirmez votre adresse email',
+'form_auteur_mail_confirmation' => 'Bonjour,
+
+Vous avez demand&eacute; &agrave; changer votre adresse email.
+Pour confirmer votre nouvelle adresse, il suffit de vous connecter &agrave;
+l\'adresse ci-dessous (dans le cas contraire, votre demande
+sera ignor&eacute;e) :
+
+    @url@
+',
 'form_deja_inscrit' => 'Vous &ecirc;tes d&eacute;j&agrave; inscrit.',
 'form_email_non_valide' => 'Votre adresse email n\'est pas valide.',
 'form_forum_access_refuse' => 'Vous n\'avez plus acc&egrave;s &agrave; ce site.',
diff --git a/prive/formulaires/editer_auteur.html b/prive/formulaires/editer_auteur.html
index c4282718e33dda299f5a3e7c662400cc8673a8ef..599ad8265dd5eec45e75df008d89b44d47e7d4c9 100644
--- a/prive/formulaires/editer_auteur.html
+++ b/prive/formulaires/editer_auteur.html
@@ -22,14 +22,9 @@
 	    	Modification de l'email
 			ou message disant que seuls les admins peuvent le modifier
 		]
-		#SET{disable,''}
-		[(#AUTORISER{modifier,auteur,#ENV{id_auteur},#NULL,#ARRAY{email,?}}|non)
-		  #SET{disable,disabled='disabled'}
-		]
 	    <li class="editer_email[ (#ENV**{erreurs}|table_valeur{email}|oui)erreur]">
 				<label for="email"><:entree_adresse_email:></label>[
 				<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{email})</span>
-				][(#GET{disable}|oui)<p class='explication'><:info_reserve_admin:></p>
 				]<input type='text' class='text[ (#GET{disable}|oui)disabled]' name='email' id='email' value="[(#ENV**{email})]" #GET{disable}/>
 	    </li>
 	    <li class="editer_bio[ (#ENV**{erreurs}|table_valeur{bio}|oui)erreur]">
diff --git a/prive/formulaires/editer_auteur.php b/prive/formulaires/editer_auteur.php
index 81b9722220c6e9e842bd536ee6cedd55826aed5c..93411b3751a19311eb3bad4d7c928f9c1d461534 100644
--- a/prive/formulaires/editer_auteur.php
+++ b/prive/formulaires/editer_auteur.php
@@ -53,6 +53,13 @@ function formulaires_editer_auteur_verifier_dist($id_auteur='new', $retour='', $
 	$auth_methode = ($auth_methode ? $auth_methode : 'spip');
 	include_spip('inc/auth');
 
+	if ($email = _request('email')){
+		include_spip('inc/filtres');
+		if (!email_valide($email)){
+			$erreurs['email'] = _T('form_email_non_valide');
+		}
+	}
+
 	if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)){
 		$erreurs['new_login'] = $err;
 		$erreurs['message_erreur'] .= $err;
@@ -77,9 +84,31 @@ function formulaires_editer_auteur_verifier_dist($id_auteur='new', $retour='', $
 function formulaires_editer_auteur_traiter_dist($id_auteur='new', $retour='', $lier_article=0, $config_fonc='auteurs_edit_config', $row=array(), $hidden=''){
 	if (_request('saisie_webmestre') OR _request('webmestre'))
 		set_request('webmestre',_request('webmestre')?_request('webmestre'):'non');
+	$retour = parametre_url($retour, 'email_confirm','');
+
+	if (!autoriser('modifier','auteur',$id_auteur,null,array('statut'=>'?'))){
+		$email_nouveau = _request('email');
+		set_request('email'); // vider la saisie car l'auteur n'a pas le droit de modifier cet email
+		// mais si c'est son propre profil on lui envoie un email à l'adresse qu'il a indique
+		// pour qu'il confirme qu'il possede bien cette adresse
+		// 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))){
+			$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'))))
+			);
+			set_request('email_confirm',$email_nouveau);
+			$retour = parametre_url($retour, 'email_confirm',$email_nouveau);
+		}
+	}
 
-	return formulaires_editer_objet_traiter('auteur',$id_auteur,0,0,$retour,$config_fonc,$row,$hidden);
-	//return $message;
+	$res = formulaires_editer_objet_traiter('auteur',$id_auteur,0,0,$retour,$config_fonc,$row,$hidden);
+	return $res;
 }
 
 ?>