diff --git a/action/editer_document.php b/action/editer_document.php
index b5ea8a14a7bb9d47a3bbfbff559d862a2e3b63a1..003f335a558acd094005c337a4aabf1afc98812e 100644
--- a/action/editer_document.php
+++ b/action/editer_document.php
@@ -306,10 +306,15 @@ function medias_revision_document_parents($id_document, $parents = null, $ajout
 		}
 	}
 
-	// verifier les droits d'associer
+	// trier les objets à traiter : ne pas prendre en compte ceux qui sont déjà associés ou qu'on n'a pas le droit d'associer
 	foreach ($objets_parents as $objet => $ids) {
 		foreach ($ids as $k => $id) {
-			if (!autoriser('associerdocuments', $objet, $id)) {
+			if ((
+					isset($deja_parents[$objet])
+					and in_array($id, $deja_parents[$objet])
+				)
+				or !autoriser('associerdocuments', $objet, $id)
+			) {
 				unset($objets_parents[$objet][$k]);
 			}
 		}