diff --git a/ecrire/config-fonctions.php3 b/ecrire/config-fonctions.php3
index 18fa1220b6203bd14fdc9e707445430299e87bf7..5c9d79f9daf860dc714d513447b4ed192be039c0 100644
--- a/ecrire/config-fonctions.php3
+++ b/ecrire/config-fonctions.php3
@@ -341,7 +341,7 @@ if (tester_mail()) {
 	$jours_neuf=lire_meta("jours_neuf");
 
 	if ($envoi_now)
-		envoyer_mail_quoi_de_neuf('force');
+		spip_query("DELETE FROM spip_meta WHERE nom='majnouv'");
 	
 	echo "<TR><TD>&nbsp;</TD></TR>";
 	echo "<TR><TD BGCOLOR='#EEEECC' BACKGROUND='img_pack/rien.gif'><B><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=3>Annonce des nouveaut&eacute;s</FONT></B></TD></TR>";
diff --git a/ecrire/inc_filtres.php3 b/ecrire/inc_filtres.php3
index b1ceaeec56e117feeb9f66ee63083961a6bd4ffe..eb88cd7864cdb04463157a1ede19a7cfabbda5b5 100644
--- a/ecrire/inc_filtres.php3
+++ b/ecrire/inc_filtres.php3
@@ -22,6 +22,12 @@ function entites_html($texte) {
 }
 
 
+function entites_date($date) {	// specifique : pour envoyer une date par mail
+	$date = ereg_replace("&ucirc;", "\xfb", $date);
+	$date = ereg_replace("&eacute;", "\xe9", $date);
+	return $date;
+}
+
 // Enleve le numero des titres numerotes ("1. Titre" -> "Titre")
 function supprimer_numero($texte) {
 	$texte = ereg_replace("^[[:space:]]*[0-9]+[.)".chr(176)."][[:space:]]+", "", $texte);
@@ -379,13 +385,8 @@ function saison($numdate) {
 	return affdate_base($numdate, 'saison');
 }
 
-function affdate($numdate, $corriger_entites = false) {
-	$date = affdate_base($numdate, 'entier');
-	if ($corriger_entites) {	// special pour le mail...
-		$date = ereg_replace("&ucirc;", "\xfb", $date);
-		$date = ereg_replace("&eacute;", "\xe9", $date);
-	}
-	return $date;
+function affdate($numdate) {
+	return affdate_base($numdate, 'entier');
 }
 
 function affdate_court($numdate) {
diff --git a/ecrire/inc_mail.php3 b/ecrire/inc_mail.php3
index 459f048dba9de99ea19fa009753db90a1ace9720..4d165cb2b50368a24d5a22ca50eef01e5bcee1a9 100644
--- a/ecrire/inc_mail.php3
+++ b/ecrire/inc_mail.php3
@@ -156,6 +156,7 @@ function envoyer_mail_proposition($id_article) {
 	}
 }
 
+/*
 function envoyer_mail_nouveautes($majnouv) {
 	$jours_neuf = lire_meta("jours_neuf");
 	$adresse_site = lire_meta("adresse_site");
@@ -222,6 +223,6 @@ function envoyer_mail_quoi_de_neuf($force=false) {
 	ecrire_meta('majnouv', time());
 	ecrire_metas();
 	envoyer_mail_nouveautes($majnouv);
-}
+} */
 
 ?>
diff --git a/inc-public-global.php3 b/inc-public-global.php3
index 9b9fed5d92a596c0ae42f4e577db86aaef42de1c..4b3abc78def941d77e9bed8f21fe808c75703479 100644
--- a/inc-public-global.php3
+++ b/inc-public-global.php3
@@ -384,9 +384,29 @@ if (lire_meta("activer_statistiques") != "non") {
 //
 if ($db_ok) {
 	$majnouv = lire_meta('majnouv');
-	if ((lire_meta('quoi_de_neuf')=='oui') AND ($jours_neuf=lire_meta('jours_neuf')) AND (email_valide(lire_meta('adresse_neuf'))) AND ((time() - $majnouv) > 3600*24*$jours_neuf)) {
-		include_ecrire('inc_mail.php3');
-		envoyer_mail_quoi_de_neuf();
+	if ((lire_meta('quoi_de_neuf')=='oui') AND ($jours_neuf=lire_meta('jours_neuf')) AND (email_valide($adresse_neuf = lire_meta('adresse_neuf'))) AND ((time() - $majnouv) > 3600*24*$jours_neuf)) {
+
+		// lock && indication du prochain envoi
+		ecrire_meta('majnouv', time());
+		ecrire_metas();
+
+		// preparation mail : date de reference au format MySQL pour l'age_relatif du squelette (grrr)
+		if ($majnouv)
+			$date = $majnouv;
+		else
+			$date = time() - 3600*24*$jours_neuf;
+		unset ($mail_nouveautes);
+		$fond = 'nouveautes';
+		$delais = 0;
+		$contexte_inclus['date'] = date('Y-m-d H:i:s', $date);
+		include(inclure_fichier($fond, $delais, $contexte_inclus));
+
+		// envoi
+		if ($mail_nouveautes) {
+			include_ecrire('inc_mail.php3');
+			$nom_site_spip = lire_meta('nom_site_spip');
+			envoyer_mail($adresse_neuf, "[$nom_site_spip] Les nouveautes", $mail_nouveautes);
+		}
 	}
 }
 
diff --git a/nouveautes-dist.html b/nouveautes-dist.html
new file mode 100644
index 0000000000000000000000000000000000000000..70e8a0ef706ee7452ed1278431c0ab06e2816bfe
--- /dev/null
+++ b/nouveautes-dist.html
@@ -0,0 +1,62 @@
+<?php
+
+/**********************************************************/
+/* Ce squelette tres specifique est utilise pour creer    */
+/* l'envoi de l'annonce des nouveautes. Attention, il     */
+/* fonctionne entierement en php...                       */
+/**********************************************************/
+
+unset($mail_nouveautes);
+
+//
+// Articles
+//
+<B_nv1>
+$mail_nouveautes = '
+
+          -----------------
+          NOUVEAUX ARTICLES
+          -----------------
+
+';
+<BOUCLE_nv1(ARTICLES){age_relatif>=0}{par date}{inverse}{0,30}>
+	$mail_nouveautes .= '[** (#TITRE|textebrut|texte_script) **]';
+	$mail_nouveautes .= "\n";
+	$mail_nouveautes .= '[par (#LESAUTEURS|textebrut|texte_script)] ';
+	$mail_nouveautes .= '[le (#DATE|affdate|entites_date|texte_script)]'."\n\n";
+	$mail_nouveautes .= '[(#INTRODUCTION|textebrut|texte_script)]'."\n\n";
+	$mail_nouveautes .= '-> #URL_SITE_SPIP/#URL_ARTICLE'."\n\n";
+</BOUCLE_nv1>
+
+//
+// Breves
+//
+<B_nv2>
+$mail_nouveautes .= '
+
+          ----------------
+          NOUVELLES BREVES
+          ----------------
+
+';
+<BOUCLE_nv2(BREVES){age_relatif>=0}{par date}{inverse}{0,30}>
+	$mail_nouveautes .= '[* (#TITRE|textebrut|texte_script) *]';
+	$mail_nouveautes .= '[ - (#DATE|affdate|entites_date|texte_script)]'."\n\n";
+	$mail_nouveautes .= '[(#INTRODUCTION|textebrut|texte_script)]'."\n\n";
+	$mail_nouveautes .= '-> #URL_SITE_SPIP/#URL_BREVE'."\n\n";
+</BOUCLE_nv2>
+
+
+//
+//	Ajouter l'entete
+//
+if ($mail_nouveautes) {
+		$mail_nouveautes = "Bonjour,
+
+Voici la lettre d'information du site \"#NOM_SITE_SPIP\" (#URL_SITE_SPIP),
+qui recense les articles et les br\xe8ves publi\xe9s depuis $joursneuf jours.
+
+" . $mail_nouveautes;
+	}
+
+?>