diff --git a/.gitattributes b/.gitattributes
index aff3eab5f145c0594ad6e46cdb7664a029c5ae53..b83a29e3edaabc872f6c981ee18edd5f800fdb57 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -23,6 +23,7 @@ formulaires/editer_document.php -text
 formulaires/illustrer_document.html -text
 formulaires/illustrer_document.php -text
 formulaires/inc-lister_archive_jointe.html -text
+formulaires/inc-upload_document.html -text
 formulaires/joindre_document.html -text
 formulaires/joindre_document.php -text
 formulaires/methodes_upload/distant.html -text
diff --git a/formulaires/illustrer_document.php b/formulaires/illustrer_document.php
index c45a7198357935294b60498b84bdb59c8c1e116a..fa9e407ce29ac86e7315ca39d849d0749c5be2b0 100644
--- a/formulaires/illustrer_document.php
+++ b/formulaires/illustrer_document.php
@@ -31,6 +31,17 @@ function formulaires_illustrer_document_charger_dist($id_document) {
 	$valeurs['id_vignette'] = $vignette['id_document'];
 	$valeurs['_pipeline'] = array('editer_contenu_objet', array('type' => 'illustrer_document', 'id' => $id_document));
 
+	// méthodes d'upload disponibles
+	$valeurs['_methodes_upload'] = array();
+	$valeurs['_methodes_upload']['upload'] = array('label_lien'=>_T('medias:bouton_download_local'),'label_bouton'=>_T('bouton_upload'));
+	$valeurs['_methodes_upload']['distant'] = array('label_lien'=>_T('medias:bouton_download_sur_le_web'),'label_bouton'=>_T('bouton_choisir'));
+
+	// pipeline pour les méthodes d'upload
+	$valeurs['_methodes_upload'] = pipeline('medias_methodes_upload', array(
+		'args' => array('objet' => 'document', 'id_objet' => $id_document),
+		'data' => $valeurs['_methodes_upload']
+	));
+
 	return $valeurs;
 }
 
diff --git a/formulaires/inc-upload_document.html b/formulaires/inc-upload_document.html
new file mode 100644
index 0000000000000000000000000000000000000000..13c9e3bfa356aceb95e3864bfafc08d66f035713
--- /dev/null
+++ b/formulaires/inc-upload_document.html
@@ -0,0 +1,53 @@
+[(#GET{mediatheque,[(#ENV{objet,''}|et{#ENV{id_objet,''}}|et{#ENV{proposer_media}})]})]
+
+#SET{domid,_#ENV{mode}|concat{'_',#ENV{id,new}}}
+#SET{methode,upload}
+[(#ENV{joindre_mediatheque}|oui)#SET{methode,mediatheque}]
+[(#ENV{joindre_distant}|oui)#SET{methode,distant}]
+[(#ENV{joindre_ftp}|oui)#SET{methode,ftp}]
+
+<div id="defaultsubmit#GET{domid}" class="none">DEFAULT</div>
+
+<BOUCLE_methodes(DATA){source tableau,#ENV{_methodes_upload}}>
+	#SET{methode_upload,#CLE}
+	<div class='joindre_mode#GET{domid}[(#GET{methode}|=={#CLE}|non)none-js]' id='joindre_#CLE#GET{domid}'>
+
+		[(#INCLURE{fond=formulaires/methodes_upload/#CLE, env, mediatheque=#ENV{objet,''}|et{#ENV{id_objet,''}}|et{#ENV{proposer_media}}})]
+
+		<div class='sourceup'>
+			[(#SET{cpt,1})]
+			<:medias:bouton_download_depuis:>
+			<BOUCLE_methodes_liens(DATA){source tableau,#ENV{_methodes_upload}}>
+				[(#GET{cpt}|>{1}|oui)
+					[(#VAL{'|'})]
+				]
+				[(#GET{methode_upload}|=={#CLE}|oui)
+					#VALEUR{label_lien}
+				]
+				[(#GET{methode_upload}|=={#CLE}|non)
+					<a href='#' onclick="change_methode('#GET{domid}','#CLE');return false;">#VALEUR{label_lien}</a>
+				]
+				[(#SET{cpt,#GET{cpt}|plus{1}})]
+			</BOUCLE_methodes_liens>
+		</div>
+		<p class='boutons'><input class='submit' type="submit" name="joindre_#CLE" value="#VALEUR{label_bouton}"/></p>
+	</div>
+</BOUCLE_methodes>
+
+[(#REM) Formulaire pour deballer un zip]
+[<div class="editer-groupe"><div class='fieldset deballer_zip'>(#ENV**{erreurs}|table_valeur{lister_contenu_archive})</div></div>]
+
+<script type='text/javascript'>/*<!#EVAL{chr(91)}CDATA#EVAL{chr(91)}*/
+if (window.jQuery){
+function change_methode(domid,methode){
+	var id = "#joindre_"+methode+domid;
+	if (jQuery(id).is(':hidden')) {
+		jQuery('div.joindre_mode'+domid+':visible').slideUp('fast');
+		jQuery(id).slideDown('fast');
+	}
+	// placer en haut du formulaire les boutons submit par defaut correspondant a la methode active
+	jQuery("#defaultsubmit"+domid).html('').append(jQuery(id).find('.boutons').eq(-1).find('input').clone(true));
+}
+jQuery(function(){change_methode('#GET{domid}','#GET{methode}');});
+}
+/*#EVAL{chr(93)}[(#EVAL{chr(93)})]>*/</script>
\ No newline at end of file
diff --git a/formulaires/joindre_document.html b/formulaires/joindre_document.html
index 1d91f9a7ae1963aaff7622932e07ad79c4aa1f8b..1d3c2c7bf08b33d5ee240e0f82ac0b42d72bcf14 100644
--- a/formulaires/joindre_document.html
+++ b/formulaires/joindre_document.html
@@ -13,60 +13,9 @@
 	
 	<form action="#ENV{action}#formulaire_joindre_document-#ENV{id,new}" method="post" enctype='multipart/form-data'><div>
 		[(#ACTION_FORMULAIRE{#ENV{action}})]
-
-		[(#GET{mediatheque,[(#ENV{objet,''}|et{#ENV{id_objet,''}}|et{#ENV{proposer_media}})]})]
-
-		#SET{domid,_#ENV{mode}|concat{'_',#ENV{id,new}}}
-		#SET{methode,upload}
-		[(#ENV{joindre_mediatheque}|oui)#SET{methode,mediatheque}]
-		[(#ENV{joindre_distant}|oui)#SET{methode,distant}]
-		[(#ENV{joindre_ftp}|oui)#SET{methode,ftp}]
-
-		<div id="defaultsubmit#GET{domid}" class="none">DEFAULT</div>
-
-		<BOUCLE_methodes(DATA){source tableau,#ENV{_methodes_upload}}>
-			#SET{methode_upload,#CLE}
-			<div class='joindre_mode#GET{domid}[(#GET{methode}|=={#CLE}|non)none-js]' id='joindre_#CLE#GET{domid}'>
-				
-				[(#INCLURE{fond=formulaires/methodes_upload/#CLE, env, mediatheque=#ENV{objet,''}|et{#ENV{id_objet,''}}|et{#ENV{proposer_media}}})]
-
-				<div class='sourceup'>
-					[(#SET{cpt,1})]
-					<:medias:bouton_download_depuis:>
-					<BOUCLE_methodes_liens(DATA){source tableau,#ENV{_methodes_upload}}>
-						[(#GET{cpt}|>{1}|oui)
-							[(#VAL{'|'})]
-						]
-						[(#GET{methode_upload}|=={#CLE}|oui)
-							#VALEUR
-						]
-						[(#GET{methode_upload}|=={#CLE}|non)
-							<a href='#' onclick="change_methode('#GET{domid}','#CLE');return false;">#VALEUR</a>
-						]
-						[(#SET{cpt,#GET{cpt}|plus{1}})]
-					</BOUCLE_methodes_liens>
-				</div>
-				<p class='boutons'><input class='submit' type="submit" name="joindre_#CLE" value="<:bouton_upload:>"/></p>
-			</div>
-		</BOUCLE_methodes>
-
-		[(#REM) Formulaire pour deballer un zip]
-		[<div class="editer-groupe"><div class='fieldset deballer_zip'>(#ENV**{erreurs}|table_valeur{lister_contenu_archive})</div></div>]
-
-		<script type='text/javascript'>/*<!#EVAL{chr(91)}CDATA#EVAL{chr(91)}*/
-		if (window.jQuery){
-		function change_methode(domid,methode){
-			var id = "#joindre_"+methode+domid;
-			if (jQuery(id).is(':hidden')) {
-				jQuery('div.joindre_mode'+domid+':visible').slideUp('fast');
-				jQuery(id).slideDown('fast');
-			}
-			// placer en haut du formulaire les boutons submit par defaut correspondant a la methode active
-			jQuery("#defaultsubmit"+domid).html('').append(jQuery(id).find('.boutons').eq(-1).find('input').clone(true));
-		}
-		jQuery(function(){change_methode('#GET{domid}','#GET{methode}');});
-		}
-		/*#EVAL{chr(93)}[(#EVAL{chr(93)})]>*/</script>
+		
+		[(#INCLURE{fond=formulaires/inc-upload_document, env, mediatheque=#ENV{objet,''}|et{#ENV{id_objet,''}}|et{#ENV{proposer_media}}})]
+		
 	</div></form>
 </div>]
 [(#ENV{_galerie,''}|oui)
diff --git a/formulaires/joindre_document.php b/formulaires/joindre_document.php
index 2461b9c2f441d32a5cc7fe6a6ca2c4b6d540b2a3..95c76faa30820ccf63cdd715ebd41be937753cb2 100644
--- a/formulaires/joindre_document.php
+++ b/formulaires/joindre_document.php
@@ -84,15 +84,16 @@ function formulaires_joindre_document_charger_dist(
 	$mode = joindre_determiner_mode($mode, $id_document, $objet);
 
 	// méthodes d'upload disponibles
-	$valeurs['_methodes_upload']['upload'] = _T('medias:bouton_download_local');
-	if($proposer_ftp) {
-		$valeurs['_methodes_upload']['ftp'] = _T('medias:bouton_download_par_ftp');
-		$valeurs['_methodes_upload']['distant'] = _T('medias:bouton_download_sur_le_web');
-	}
+	$valeurs['_methodes_upload'] = array();
+	$valeurs['_methodes_upload']['upload'] = array('label_lien'=>_T('medias:bouton_download_local'),'label_bouton'=>_T('bouton_upload'));
 	if($proposer_media && !empty($objet) && $id_objet != 0){
-		$valeurs['_methodes_upload']['mediatheque'] = _T('medias:bouton_download_par_mediatheque');
+		$valeurs['_methodes_upload']['mediatheque'] = array('label_lien'=>_T('medias:bouton_download_par_mediatheque'),'label_bouton'=>_T('medias:bouton_attacher_document'));
 	}
-	
+	if($proposer_ftp) {
+		$valeurs['_methodes_upload']['ftp'] = array('label_lien'=>_T('medias:bouton_download_par_ftp'),'label_bouton'=>_T('bouton_choisir'));
+	}
+	$valeurs['_methodes_upload']['distant'] = array('label_lien'=>_T('medias:bouton_download_sur_le_web'),'label_bouton'=>_T('bouton_choisir'));
+
 
 	// pipeline pour les méthodes d'upload
 	$valeurs['_methodes_upload'] = pipeline('medias_methodes_upload', array(
diff --git a/paquet.xml b/paquet.xml
index 3ff1d90576efc1646c4f4937ecc538742fe350ac..1288cc592ecc86f932530c58eeb87da07fe0801c 100644
--- a/paquet.xml
+++ b/paquet.xml
@@ -1,7 +1,7 @@
 <paquet
 	prefix="medias"
 	categorie="multimedia"
-	version="2.20.0"
+	version="2.20.1"
 	etat="stable"
 	compatibilite="[3.2.0-dev;3.2.*]"
 	logo="prive/themes/spip/images/portfolio-32.png"
@@ -57,4 +57,4 @@
 
 	<chemin path="squelettes" />
 	<chemin path="" />
-</paquet>
\ No newline at end of file
+</paquet>