diff --git a/.gitattributes b/.gitattributes
index ef6d18037836a3fb4f91832fcbec2a8ba7551911..96d2cd57df1005d35fbbfb6cf594e473d089d57e 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -59,6 +59,7 @@ inc/getdocument.php -text
 inc/joindre_document.php -text
 inc/marquer_doublons_doc.php -text
 inc/renseigner_document.php -text
+inc/verifier_document_mode_vignette.php -text
 inc/vignette.php -text
 javascript/jquery.MultiFile.js -text
 javascript/medias_edit.js -text
diff --git a/action/ajouter_documents.php b/action/ajouter_documents.php
index 4b01e12fef59fbc082e33569b70c423f1ecbabc7..1fc398dd3af12bb2b8d4b73501d18eb8ff5082b6 100644
--- a/action/ajouter_documents.php
+++ b/action/ajouter_documents.php
@@ -91,7 +91,7 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet,
 	$mode = ((isset($file['mode']) AND $file['mode'])?$file['mode']:$mode);
 
 	include_spip('inc/modifier');
-	if (isset($file['distant']) AND $file['distant'] AND $mode=='vignette') {
+	if (isset($file['distant']) AND $file['distant'] AND !in_array($mode,array('choix','auto','image','document'))) {
 		include_spip('inc/distant');
 		$file['tmp_name'] = _DIR_RACINE . copie_locale($source);
 		$source = $file['tmp_name'];
@@ -146,7 +146,7 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet,
 		$champs = array_merge($champs,$infos);
 
 		// Si mode == 'choix', fixer le mode image/document
-		if ($mode == 'choix' OR !in_array($mode, array('vignette', 'image', 'document'))) {
+		if (in_array($mode,array('choix','auto'))) {
 			$choisir_mode_document = charger_fonction('choisir_mode_document','inc');
 			$mode = $choisir_mode_document($champs, $champs['inclus'] == 'image', $objet);
 		}
@@ -179,7 +179,6 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet,
 
 	include_spip('action/editer_document');
 	// Installer le document dans la base
-	// attention piege semantique : les images s'installent en mode 'vignette'
 	if (!$id_document){
 		$id_document = insert_document();
 		spip_log ("ajout du document ".$file['tmp_name']." ".$file['name']."  (M '$mode' T '$objet' L '$id_objet' D '$id_document')");
@@ -360,15 +359,10 @@ function verifier_taille_document_acceptable($infos){
 							'hauteur_vignette' => $infos['hauteur']))
 				));
 	}
-	
-	// Si on veut uploader une vignette, il faut qu'elle ait ete bien lue
-	if ($infos['mode'] == 'vignette') {
-		if ($infos['inclus'] != 'image')
-			return _T('medias:erreur_format_fichier_image',array('nom'=> $infos['fichier'])); #SVG
 
-		if (!($infos['largeur'] OR $infos['hauteur']))
-			return _T('medias:erreur_upload_vignette',array('nom'=>$infos['fichier']));
-	}
+  // verifier en fonction du mode si une fonction est proposee
+	if ($verifier_document_mode = charger_fonction("verifier_document_mode_".$infos['mode'],"inc",true))
+		return $verifier_document_mode($infos);
 
 	return true;
 }
diff --git a/inc/verifier_document_mode_vignette.php b/inc/verifier_document_mode_vignette.php
new file mode 100644
index 0000000000000000000000000000000000000000..8317652844225c3f1195d44b09a7ecde828b3572
--- /dev/null
+++ b/inc/verifier_document_mode_vignette.php
@@ -0,0 +1,24 @@
+<?php
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2010                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function inc_verifier_document_mode_vignette_dist($infos){
+
+	// Si on veut uploader une vignette, il faut qu'elle ait ete bien lue
+	if ($infos['inclus'] != 'image')
+		return _T('medias:erreur_format_fichier_image',array('nom'=> $infos['fichier'])); #SVG
+
+	if (!($infos['largeur'] OR $infos['hauteur']))
+		return _T('medias:erreur_upload_vignette',array('nom'=>$infos['fichier']));
+
+	return true;
+}
\ No newline at end of file
diff --git a/plugin.xml b/plugin.xml
index 82ca0d92619e1fd060851e81ad9c5a5e07a21ae6..40d3ac89616a99384b2f3a38b19642724da4621b 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -2,7 +2,7 @@
 	<nom>Medias</nom>
 	<auteur>Collectif SPIP, Cedric Morin &amp; Romy Duhem-Verdiere pour la mediatheque</auteur>
 	<icon>images/portfolio-64.png</icon>
-	<version>1.6.0</version>
+	<version>2.0.0</version>
 	<version_base>0.11.0</version_base>
 	<etat>dev</etat>
 	<description>Gestion des medias de SPIP</description>