diff --git a/action/ajouter_documents.php b/action/ajouter_documents.php
index aa129a9dfd3a903ed9e1d24de6e2df9fff3fe84a..3ba1f336437a6b0da613a4b8088dfe45dfa7d435 100644
--- a/action/ajouter_documents.php
+++ b/action/ajouter_documents.php
@@ -185,7 +185,8 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet,
 		// Exemple : si extension .jpg mais le contenu est un png
 		if (!empty($infos['type_image']) and $infos['type_image'] !== $champs['extension']) {
 			spip_log('Image `' . $file['name'] . '` mauvaise extension. Correcte : ' . $infos['type_image'], 'medias' . _LOG_INFO);
-			$new = copier_document($infos['type_image'], $file['name'] . '.' . $infos['type_image'], $champs['fichier']);
+			$subdir = determiner_sous_dossier_document($infos['type_image'], $file['name'] . '.' . $infos['type_image'], $mode);
+			$new = copier_document($infos['type_image'], $file['name'] . '.' . $infos['type_image'], $champs['fichier'], $subdir);
 			if ($new) {
 				supprimer_fichier($champs['fichier']);
 				$champs['fichier'] = $new;
@@ -290,6 +291,23 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet,
 	return $id_document;
 }
 
+/**
+ * Sous-repertoire dans lequel on stocke le document
+ * en regle general $ext/ sauf pour les logo
+ * @param $ext
+ * @param $fichier
+ * @param $mode
+ * @return mixed
+ */
+function determiner_sous_dossier_document($ext, $fichier, $mode) {
+
+	// si mode un logoxx on met dans logo/
+	if (strncmp($mode, 'logo', 4) === 0) {
+		return "logo";
+	}
+
+	return $ext;
+}
 
 /**
  * Corrige l'extension du fichier dans quelques cas particuliers
@@ -407,8 +425,9 @@ function fixer_fichier_upload($file, $mode = '') {
 	 * On vérifie que le fichier existe et qu'il contient quelque chose
 	 */
 	if (is_array($row = verifier_upload_autorise($file['name'], $mode))) {
+		$subdir = determiner_sous_dossier_document($row['extension'], $file['name'], $mode);
 		if (!isset($row['autozip'])) {
-			$row['fichier'] = copier_document($row['extension'], $file['name'], $file['tmp_name']);
+			$row['fichier'] = copier_document($row['extension'], $file['name'], $file['tmp_name'], $subdir);
 			/**
 			 * On vérifie que le fichier a une taille
 			 * si non, on le supprime et on affiche une erreur
@@ -460,7 +479,7 @@ function fixer_fichier_upload($file, $mode = '') {
 				return false;
 			}
 
-			$row['fichier'] = copier_document($row['extension'], $file['name'], $source);
+			$row['fichier'] = copier_document($row['extension'], $file['name'], $source, $subdir);
 			spip_unlink($source);
 			/**
 			 * On vérifie que le fichier a une taille
diff --git a/paquet.xml b/paquet.xml
index 2f245ac6166b225c6ce187793b37418d72ff8a01..a9975572bfcd0f5287e4942b8f3fecc5fd94033d 100644
--- a/paquet.xml
+++ b/paquet.xml
@@ -1,7 +1,7 @@
 <paquet
 	prefix="medias"
 	categorie="multimedia"
-	version="2.24.0"
+	version="2.24.1"
 	etat="stable"
 	compatibilite="[3.3.0-dev;3.3.*]"
 	logo="prive/themes/spip/images/portfolio-32.png"