diff --git a/action/dissocier_document.php b/action/dissocier_document.php
index 3467be335657b9462aec3445ba1ef7ca081b75f8..8f650ede0e5c3e52157329ae1d65bf98d205f302 100644
--- a/action/dissocier_document.php
+++ b/action/dissocier_document.php
@@ -56,7 +56,7 @@ function action_dissocier_document_dist($arg=null){
 	if ($id_objet=intval($id_objet)
 		AND (
 			($id_objet<0 AND $id_objet==-$GLOBALS['visiteur_session']['id_auteur'])
-			OR autoriser('modifier',$objet,$id_objet)
+			OR autoriser('dissocierdocuments',$objet,$id_objet)
 		))
 		dissocier_document($document, $objet, $id_objet, $suppr, $check);
 	else
diff --git a/action/editer_document.php b/action/editer_document.php
index a64c3fa96285a6bff73dc4e0013e139ef7a69af2..c4ce000aae21210c7ad8cd7935989af474ad0a5b 100644
--- a/action/editer_document.php
+++ b/action/editer_document.php
@@ -256,12 +256,22 @@ function medias_revision_document_parents($id_document, $parents=null, $ajout=fa
 	if (!$ajout){
 		foreach($liens as $k=>$lien)
 			if (!isset($objets_parents[$lien['objet']]) OR !in_array($lien['id_objet'],$objets_parents[$lien['objet']])) {
-				objet_dissocier(array('document'=>$id_document),array($lien['objet']=>$lien['id_objet']));
+				if (autoriser('dissocierdocuments',$lien['objet'],$lien['id_objet'])){
+					objet_dissocier(array('document'=>$id_document),array($lien['objet']=>$lien['id_objet']));
+				}
 				unset($liens[$k]);
 			}
 			else $deja_parents[$lien['objet']][] = $lien['id_objet'];
 	}
 
+	// verifier les droits d'associer
+	foreach($objets_parents as $objet=>$ids){
+		foreach($ids as $k=>$id){
+			if (!autoriser('associerdocuments',$objet,$id)){
+				unset($objets_parents[$objet][$k]);
+			}
+		}
+	}
 	objet_associer(array('document'=>$id_document),$objets_parents);
 
 }
diff --git a/formulaires/editer_document.php b/formulaires/editer_document.php
index 1654d0ce1f11ee9ca88bd252e1e15330d292c6f3..044fd440901de733573d18a1545324d1e11ab648 100644
--- a/formulaires/editer_document.php
+++ b/formulaires/editer_document.php
@@ -134,6 +134,7 @@ function formulaires_editer_document_traiter_dist($id_document='new', $id_parent
 	}
 
 	$res = formulaires_editer_objet_traiter('document',$id_document,$id_parent,$lier_trad,$retour,$config_fonc,$row,$hidden);
+	set_request('parents');
 	$autoclose = "<script type='text/javascript'>if (window.jQuery) jQuery.modalboxclose();</script>";
 	if (_request('copier_local')
 	  OR _request('joindre_upload')
diff --git a/medias_autoriser.php b/medias_autoriser.php
index 6d2a5c9a73c93694b3ffbeb8c28638bcc9363e38..c043ad6cfe049aaa07f7686c427739c8ba0ec949 100644
--- a/medias_autoriser.php
+++ b/medias_autoriser.php
@@ -301,3 +301,38 @@ function autoriser_orphelins_supprimer_dist($faire, $type, $id, $qui, $opt){
 	AND !$qui['restreint'])
 		return true;
 }
+
+
+/**
+ * Autoriser a associer des documents a un objet :
+ * il faut avoir le droit de modifier cet objet
+ * @param $faire
+ * @param $type
+ * @param $id
+ * @param $qui
+ * @param $opt
+ * @return bool
+ */
+function autoriser_associerdocuments_dist($faire, $type, $id, $qui, $opt){
+	if ($type=='document') return false; // pas de document sur les documents
+	return autoriser('modifier',$type,$id,$qui,$opt);
+}
+
+/**
+ * Autoriser a dissocier des documents a un objet :
+ * il faut avoir le droit de modifier cet objet
+ * @param $faire
+ * @param $type
+ * @param $id
+ * @param $qui
+ * @param $opt
+ * @return bool
+ */
+function autoriser_dissocierdocuments_dist($faire, $type, $id, $qui, $opt){
+	if ($type=='document') return false; // pas de document sur les documents
+	// cas particulier
+	if (intval($id)<0 AND $id==-$qui['id_auteur']){
+		return true;
+	}
+	return autoriser('modifier',$type,$id,$qui,$opt);
+}
diff --git a/modeles/document_case.html b/modeles/document_case.html
index b0d406919fe1e6aa12139df244c94af505ef91a5..aba87d0c4f131137a8ca65df8d73198721f8d215 100644
--- a/modeles/document_case.html
+++ b/modeles/document_case.html
@@ -38,10 +38,11 @@
 				</div>]
 			<div class="actions">
 				<BOUCLE_compte(documents_liens){id_document}{0,2} />
-				[(#TOTAL_BOUCLE|=={1}|et{#AUTORISER{modifier,#OBJET,#ID_OBJET}})[(#BOUTON_ACTION{<:medias:bouton_enlever_supprimer_document:>,#URL_ACTION_AUTEUR{dissocier_document,#ID_OBJET-#OBJET-#ID_DOCUMENT-suppr,#SELF},ajax,<:medias:bouton_enlever_supprimer_document_confirmation:>,'',[(function(){jQuery("#doc(#ID_DOCUMENT)").animateRemove();return true;})()]})]<span>|</span>]
-				[(#ID_OBJET|<{0}|ou{#AUTORISER{modifier,#OBJET,#ID_OBJET}})[(#BOUTON_ACTION{<:medias:bouton_enlever_document:>,#URL_ACTION_AUTEUR{dissocier_document,#ID_OBJET-#OBJET-#ID_DOCUMENT,#SELF},ajax,'','',[(function(){jQuery("#doc(#ID_DOCUMENT)").animateRemove();return true;})()]})]<span>|</span>]
+				[(#TOTAL_BOUCLE|=={1}|et{#AUTORISER{dissocierdocuments,#OBJET,#ID_OBJET}})[(#BOUTON_ACTION{<:medias:bouton_enlever_supprimer_document:>,#URL_ACTION_AUTEUR{dissocier_document,#ID_OBJET-#OBJET-#ID_DOCUMENT-suppr,#SELF},ajax,<:medias:bouton_enlever_supprimer_document_confirmation:>,'',[(function(){jQuery("#doc(#ID_DOCUMENT)").animateRemove();return true;})()]})]<span>|</span>]
+				[(#AUTORISER{dissocierdocuments,#OBJET,#ID_OBJET})[(#BOUTON_ACTION{<:medias:bouton_enlever_document:>,#URL_ACTION_AUTEUR{dissocier_document,#ID_OBJET-#OBJET-#ID_DOCUMENT,#SELF},ajax,'','',[(function(){jQuery("#doc(#ID_DOCUMENT)").animateRemove();return true;})()]})]<span>|</span>]
+				[(#AUTORISER{modifier,document,#ID_DOCUMENT}|oui)
 				<a href="#URL_ECRIRE{document_edit,id_document=#ID_DOCUMENT}" target="_blank" class="editbox" tabindex="0" role="button"><:medias:bouton_modifier_document:></a>
-				<//B_compte>
+				]<//B_compte>
 				[(#PIPELINE{document_desc_actions,#ARRAY{args,#ARRAY{id_document,#ID_DOCUMENT,position,document_case,objet,#OBJET,id_objet,#ID_OBJET},data,''}})]
 			</div>
 			[(#PIPELINE{afficher_metas_document,#ARRAY{args,#ARRAY{'quoi','document_case','id_document',#ID_DOCUMENT},data,''}})]
diff --git a/modeles/document_desc.html b/modeles/document_desc.html
index f3b4ca9c5eae244f2228888ca52efa7c7a95f676..b9c222a3b9a79e03d2542aeeaaf57ad2f601ed6d 100644
--- a/modeles/document_desc.html
+++ b/modeles/document_desc.html
@@ -34,10 +34,11 @@
 		</div>]
 		<div class="actions">
 			<BOUCLE_compte(documents_liens){id_document}{0,2} />
-			[(#TOTAL_BOUCLE|=={1}|et{#AUTORISER{modifier,#OBJET,#ID_OBJET}})[(#BOUTON_ACTION{<:medias:bouton_enlever_supprimer_document:>,#URL_ACTION_AUTEUR{dissocier_document,#ID_OBJET-#OBJET-#ID_DOCUMENT-suppr-safe,#SELF},ajax,<:medias:bouton_enlever_supprimer_document_confirmation:>,'',[(function(){jQuery("#doc(#ID_DOCUMENT)").animateRemove();return true;})()]})]<span>|</span>]
-			[(#AUTORISER{modifier,#OBJET,#ID_OBJET})[(#BOUTON_ACTION{<:medias:bouton_enlever_document:>,#URL_ACTION_AUTEUR{dissocier_document,#ID_OBJET-#OBJET-#ID_DOCUMENT--safe,#SELF},ajax,'','',[(function(){jQuery("#doc(#ID_DOCUMENT)").animateRemove();return true;})()]})]<span>|</span>]
+			[(#TOTAL_BOUCLE|=={1}|et{#AUTORISER{dissocierdocuments,#OBJET,#ID_OBJET}}|et{#VU|=={non}})[(#BOUTON_ACTION{<:medias:bouton_enlever_supprimer_document:>,#URL_ACTION_AUTEUR{dissocier_document,#ID_OBJET-#OBJET-#ID_DOCUMENT-suppr-safe,#SELF},ajax,<:medias:bouton_enlever_supprimer_document_confirmation:>,'',[(function(){jQuery("#doc(#ID_DOCUMENT)").animateRemove();return true;})()]})]<span>|</span>]
+			[(#AUTORISER{dissocierdocuments,#OBJET,#ID_OBJET})[(#BOUTON_ACTION{<:medias:bouton_enlever_document:>,#URL_ACTION_AUTEUR{dissocier_document,#ID_OBJET-#OBJET-#ID_DOCUMENT--safe,#SELF},ajax,'','',[(function(){jQuery("#doc(#ID_DOCUMENT)").animateRemove();return true;})()]})]<span>|</span>]
+			[(#AUTORISER{modifier,document,#ID_DOCUMENT}|oui)
 			<a href="#URL_ECRIRE{document_edit,id_document=#ID_DOCUMENT}" target="_blank" class="editbox" tabindex="0" role="button"><:medias:bouton_modifier_document:></a>
-			<//B_compte>
+			]<//B_compte>
 			[(#PIPELINE{document_desc_actions,#ARRAY{args,#ARRAY{id_document,#ID_DOCUMENT,position,document_desc,objet,#OBJET,id_objet,#ID_OBJET},data,''}})]
 		</div>
 		<div class="nettoyeur"></div>
diff --git a/paquet.xml b/paquet.xml
index 3fe82ae8e6d750a2fd54a020b9b10b226c71db09..24e213308e5a3045c3c49f98fbb6ba6c32786631 100644
--- a/paquet.xml
+++ b/paquet.xml
@@ -1,7 +1,7 @@
 <paquet
 	prefix="medias"
 	categorie="multimedia"
-	version="2.10.13"
+	version="2.10.14"
 	etat="stable"
 	compatibilite="[3.0.0;3.1.*]"
 	logo="prive/themes/spip/images/portfolio-32.png"
diff --git a/prive/squelettes/inclure/document_infos.html b/prive/squelettes/inclure/document_infos.html
index 1edfde8fa9b122ad943c89f158ea1a945c608d03..f2030571e69cf15944eb1610f65e02174eb707f2 100644
--- a/prive/squelettes/inclure/document_infos.html
+++ b/prive/squelettes/inclure/document_infos.html
@@ -10,7 +10,7 @@
 			[(#VU|=={oui}|oui)
 			[<span class='vu'>(#CHEMIN_IMAGE{document-vu-24.png}|balise_img|inserer_attribut{title,<:medias:document_vu:>}|inserer_attribut{alt,<:medias:document_vu:>})</span>]
 			]
-			[(#AUTORISER{modifier,#OBJET,#ID_OBJET}|oui)
+			[(#AUTORISER{dissocierdocuments,#OBJET,#ID_OBJET}|oui)
 				[(#BOUTON_ACTION{<:medias:bouton_enlever_document:>,[(#URL_ACTION_AUTEUR{dissocier_document,#ID_OBJET-#OBJET-#ID_DOCUMENT--safe,#SELF})],ajax,'',''})]
 			]
 			</li>