diff --git a/action/ajouter_documents.php b/action/ajouter_documents.php
index 8cbf139f5660fddeeda7c09bc7e28f0a173e709f..6a085a53fc3405dd4263867ea0a4cb686c879b5f 100644
--- a/action/ajouter_documents.php
+++ b/action/ajouter_documents.php
@@ -188,7 +188,7 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet,
 	if (!$id_document)
 		return _T('medias:erreur_insertion_document_base',array('fichier'=>"<em>".$file['name']."</em>"));
 	
-	document_set($id_document,$champs);
+	document_modifier($id_document,$champs);
 
 	// permettre aux plugins de faire des modifs a l'ajout initial
 	// ex EXIF qui tourne les images si necessaire
diff --git a/action/copier_local.php b/action/copier_local.php
index ff0f664895a26da323002571c191f0d3b4ab34ed..8c962d7e5f03f789a9aa40d38fb402ee32b1dc65 100644
--- a/action/copier_local.php
+++ b/action/copier_local.php
@@ -68,7 +68,7 @@ function action_copier_local_post($id_document) {
 		
 		// ajouter l'origine du document aux credits
 		include_spip('action/editer_document');
-		document_set($id_document,array('credits'=>($row['credits']?$row['credits'].', ':'').$source));
+		document_modifier($id_document,array('credits'=>($row['credits']?$row['credits'].', ':'').$source));
 		return true;
 		
 	} else {
diff --git a/action/editer_document.php b/action/editer_document.php
index 3488f7bd257e6a68922b008964ea7b8d0098baed..43b72554028d09d3f5f27284a23c3bfc28bba542 100644
--- a/action/editer_document.php
+++ b/action/editer_document.php
@@ -18,34 +18,24 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
  *
  * @return unknown
  */
-function action_editer_document_dist() {
+function action_editer_document_dist($arg=null) {
 
-	$securiser_action = charger_fonction('securiser_action', 'inc');
-	$arg = $securiser_action();
+	if (is_null($arg)){
+		$securiser_action = charger_fonction('securiser_action', 'inc');
+		$arg = $securiser_action();
+	}
 
 	// Envoi depuis le formulaire de creation d'un document
 	if (!$id_document = intval($arg)) {
-		$id_document = insert_document();
+		$id_document = document_inserer();
 	}
 
-	if ($id_document = intval($id_document)) {
-		document_set($id_document);
-	}
-	// Erreur
-	else{
-		include_spip('inc/headers');
-		redirige_url_ecrire();
-	}
+	if (!$id_document)
+		return array(0,''); // erreur
 
-	if (_request('redirect')) {
-		$redirect = parametre_url(urldecode(_request('redirect')),
-			'id_document', $id_document, '&');
-			
-		include_spip('inc/headers');
-		redirige_par_entete($redirect);
-	}
-	else 
-		return array($id_document,'');
+	$err = document_modifier($id_document);
+
+	return array($id_document,$err);
 }
 
 /**
@@ -53,7 +43,7 @@ function action_editer_document_dist() {
  *
  * @return unknown
  */
-function insert_document() {
+function document_inserer() {
 
 	$champs = array(
 		'statut' => 'prop',
@@ -70,7 +60,16 @@ function insert_document() {
 		)
 	);
 	$id_document = sql_insertq("spip_documents", $champs);
-	
+	pipeline('post_insertion',
+		array(
+			'args' => array(
+				'table' => 'spip_documents',
+				'id_objet' => $id_document
+			),
+			'data' => $champs
+		)
+	);
+
 	return $id_document;
 }
 
@@ -82,7 +81,7 @@ function insert_document() {
  * @param int $id_document
  * @param array $set
  */
-function document_set ($id_document, $set=false) {
+function document_modifier($id_document, $set=false) {
 
 	include_spip('inc/modifier');
 	// champs normaux
@@ -129,7 +128,7 @@ function document_set ($id_document, $set=false) {
 	// Changer le statut du document ?
 	// le statut n'est jamais fixe manuellement mais decoule de celui des objets lies
 	$champs = collecter_requests(array('parents','ajouts_parents'),array(),$set);
-	if(instituer_document($id_document,$champs)) {
+	if(document_instituer($id_document,$champs)) {
 
 		//
 		// Post-modifications
@@ -149,7 +148,7 @@ function document_set ($id_document, $set=false) {
  *
  * @param int $id_document
  */
-function instituer_document($id_document,$champs=array()){
+function document_instituer($id_document,$champs=array()){
 	
 	$statut=isset($champs['statut'])?$champs['statut']:null;
 	$date_publication = isset($champs['date_publication'])?$champs['date_publication']:null;
@@ -257,4 +256,20 @@ function medias_revision_document_parents($id_document, $parents=null, $ajout=fa
 	objet_associer(array('document'=>$id_document),$objets_parents);
 
 }
+
+
+// obsoletes
+function insert_document() {
+	return document_inserer();
+}
+function document_set($id_document, $set=false) {
+	return document_modifier($id_document, $set);
+}
+function instituer_document($id_document,$champs=array()){
+	return document_instituer($id_document,$champs);
+}
+function revision_document($id_document, $c=false) {
+	return document_modifier($id_document,$c);
+}
+
 ?>
diff --git a/action/supprimer_document.php b/action/supprimer_document.php
index c606d199738750b8401511f9c05a910c5f3e9a07..a7b8ff207c0fa17a717b7743fd6fa5037d4e7007 100644
--- a/action/supprimer_document.php
+++ b/action/supprimer_document.php
@@ -27,7 +27,7 @@ function action_supprimer_document_dist($id_document=0) {
 	// si c'etait une vignette, modifier le document source !
 	if ($source = sql_getfetsel('id_document', 'spip_documents', 'id_vignette='.intval($id_document))){
 		include_spip('action/editer_document');
-		document_set($source,array("id_vignette" => 0));
+		document_modifier($source,array("id_vignette" => 0));
 	}
 
 	include_spip('inc/documents');
diff --git a/formulaires/illustrer_document.php b/formulaires/illustrer_document.php
index 5dee1135c3b16b93154dd50b8e7e6b310256ff1e..adcb1577efa7ae89df092c57a56b8feecc19dfba 100644
--- a/formulaires/illustrer_document.php
+++ b/formulaires/illustrer_document.php
@@ -67,7 +67,7 @@ function formulaires_illustrer_document_traiter_dist($id_document){
 		if (is_int(reset($ajoute))){
 			$id_vignette = reset($ajoute);
 			include_spip('action/editer_document');
-			document_set($id_document,array("id_vignette" => $id_vignette,'mode'=>'document'));
+			document_modifier($id_document,array("id_vignette" => $id_vignette,'mode'=>'document'));
 			$res['message_ok'] = _T('medias:document_installe_succes');
 		}
 		else
diff --git a/formulaires/joindre_document.php b/formulaires/joindre_document.php
index e80524d21d3f490b1e1412133db3bf0e673d9557..cf40fc7adae700321a5af594ebae13ed14b21a31 100644
--- a/formulaires/joindre_document.php
+++ b/formulaires/joindre_document.php
@@ -153,7 +153,7 @@ function formulaires_joindre_document_traiter_dist($id_document='new',$id_objet=
 			// lier le parent en plus
 			$champs = array('ajout_parents' => array("$objet|$id_objet"));
 			include_spip('action/editer_document');
-			document_set($refdoc_joindre,$champs);
+			document_modifier($refdoc_joindre,$champs);
 			set_request('refdoc_joindre',''); // vider la saisie
 			$ancre = $refdoc_joindre;
 			$sel[] = $refdoc_joindre;