diff --git a/ecrire/action/dater.php b/ecrire/action/dater.php
index 17a515fd8ad5fc934ee3be44b27f56e3a6d73580..3920989cbedcd200fce673719e690f70de9d521f 100644
--- a/ecrire/action/dater.php
+++ b/ecrire/action/dater.php
@@ -47,10 +47,12 @@ function action_dater_post($r)
 		}
 
 		$date = format_mysql_date($annee_redac, $mois_redac, $jour_redac, $heure_redac, $minute_redac);
-		sql_updateq("spip_articles", array("date_redac" => $date), "id_article=$r[1]");
-
+		include_spip('inc/modifier');
+		revision_article($r[1],array("date_redac" => $date));
 	}
 
+	// a priori fait doublon avec instituer_xx utilise dans dater_table()
+	// mais on laisse pour ne pas introduire de bug dans cette branche
 	if (($type == 'article')
 	AND $GLOBALS['meta']["post_dates"] == "non") {
 		$t = sql_fetsel("statut, id_rubrique", "spip_articles", "id_article=$id");
@@ -80,7 +82,12 @@ function dater_table($id, $type)
 	$champ = @$GLOBALS['table_date'][$nom];
 	if (!$champ) $champ = 'date';
 	$date = format_mysql_date(_request('annee'), _request('mois'), _request('jour'), _request('heure'), _request('minute'));
-	sql_updateq($table, array($champ => $date), "$col_id=$id");
+	// utiliser instituer_xx si dispo
+	if (include_spip('action/editer_'.$type) AND function_exists($f='instituer_'.$type)){
+		$f($id,array($champ => $date));
+	}
+	else
+		sql_updateq($table, array($champ => $date), "$col_id=$id");
 	return $date;
 }
 ?>
diff --git a/ecrire/action/editer_article.php b/ecrire/action/editer_article.php
index a766b7f82f4e650f40404bc13d755865c06440a7..e18b743cc7bbb5933150e8614ae6a9eb1a8f6b38 100644
--- a/ecrire/action/editer_article.php
+++ b/ecrire/action/editer_article.php
@@ -241,7 +241,8 @@ function instituer_article($id_article, $c, $calcul_rub=true) {
 		array(
 			'args' => array(
 				'table' => 'spip_articles',
-				'id_objet' => $id_article
+				'id_objet' => $id_article,
+				'action'=>'instituer'
 			),
 			'data' => $champs
 		)