diff --git a/formidable_pipelines.php b/formidable_pipelines.php
index eede6ad3ad004b1f79d0d0470f8b2056645031f9..9464fbfbaed3e84d7c1e098e64ce0c21524713b7 100644
--- a/formidable_pipelines.php
+++ b/formidable_pipelines.php
@@ -10,7 +10,7 @@
 if (!defined('_ECRIRE_INC_VERSION')) {
 	return;
 }
-
+include_spip('inc/formidable_fichiers');
 define(
 	'_RACCOURCI_MODELE_FORMIDABLE',
 	'(<(formulaire\|formidable|formidable|form)' # <modele
@@ -163,12 +163,22 @@ function formidable_optimiser_base_disparus($flux) {
 		'spip_formulaires',
 		'statut='.sql_quote('poubelle')
 	);
+	$res2 = sql_select(
+		'id_formulaire AS id',
+		'spip_formulaires',
+		'statut='.sql_quote('poubelle')
+	);//Copie pour supprimer les fichiers
 
 	// On génère la suppression
 	$flux['data'] += optimiser_sansref('spip_formulaires', 'id_formulaire', $res);
 
+	while ($reponse = sql_fetch($res2)){
+		$flux['data'] += formidable_effacer_fichiers_formulaire($reponse['id']);
+	}
+
+
 
-	# les reponses qui sont associees a un formulaire inexistant
+	// les reponses qui sont associees a un formulaire inexistant
 	$res = sql_select(
 		'R.id_formulaire AS id',
 		'spip_formulaires_reponses AS R LEFT JOIN spip_formulaires AS F ON R.id_formulaire=F.id_formulaire',
@@ -177,16 +187,22 @@ function formidable_optimiser_base_disparus($flux) {
 
 	$flux['data'] += optimiser_sansref('spip_formulaires_reponses', 'id_formulaire', $res);
 
-
 	// Les réponses qui sont à la poubelle
 	$res = sql_select(
-		'id_formulaires_reponse AS id',
+		'id_formulaires_reponse AS id, id_formulaire AS form',
 		'spip_formulaires_reponses',
 		sql_in('statut', array('refuse', 'poubelle'))
-	);
-
+	);	
+	$res2 = sql_select(
+		'id_formulaires_reponse AS id, id_formulaire AS form',
+		'spip_formulaires_reponses',
+		sql_in('statut', array('refuse', 'poubelle'))
+	);	//Copie pour la suppression des fichiers des réponses, c'est idiot de pas pouvoir faire une seule requete
 	// On génère la suppression
 	$flux['data'] += optimiser_sansref('spip_formulaires_reponses', 'id_formulaires_reponse', $res);
+	while ($reponse = sql_fetch($res2)){
+		$flux['data'] += formidable_effacer_fichiers_reponse($reponse['form'], $reponse['id']);
+	}
 
 
 	// les champs des reponses associes a une reponse inexistante
@@ -220,7 +236,6 @@ function formidable_optimiser_base_disparus($flux) {
 			sql_update('spip_formulaires_reponses', array('ip' => 'MD5(ip)'), $critere_cnil);
 		}
 	}
-
 	return $flux;
 }
 
diff --git a/inc/formidable_fichiers.php b/inc/formidable_fichiers.php
index 7ccd92b89f04d95f372a65a6ba7ca7c12104ce62..ef58076808a13ec8cf67f6571063a038b7b7718e 100644
--- a/inc/formidable_fichiers.php
+++ b/inc/formidable_fichiers.php
@@ -248,17 +248,39 @@ function formidable_deplacer_fichiers_produire_vue_saisie($saisie, $options) {
 	}
 	return $description_fichiers;
 }
+/**
+ * Efface les fichiers d'un formulaire
+ * @param $str $id_formulaire
+ * @return int 1 ou 0 selon que l'on a effacé ou non un répertoire
+**/
+function formidable_effacer_fichiers_formulaire($id_formulaire){
+	$chemin = _DIR_FICHIERS_FORMIDABLE."formulaire_$id_formulaire";
+	if (file_exists($chemin)) {// par sécurité
+		if (supprimer_repertoire($chemin)){
+			return 1;
+		} else {
+			return 0;
+		}
+	}
+	return 0;
+}
 
 /**
  * efface les fichiers d'une réponse formidable
  * @param $str $id_formulaire
  * @param $str $id_formulaires_reponse
+ * @return int 1 ou 0 selon que l'on a effacé ou non un répertoire
 **/
 function formidable_effacer_fichiers_reponse($id_formulaire, $id_formulaires_reponse){
 	$chemin = _DIR_FICHIERS_FORMIDABLE."formulaire_$id_formulaire/reponse_$id_formulaires_reponse";
 	if (file_exists($chemin)) {// par sécurité
-		supprimer_repertoire($chemin);
+		if (supprimer_repertoire($chemin)){
+			return 1;
+		} else {
+			return 0;
+		}
 	}
+	return 0;
 }
 
 /** Efface les fichiers d'un champ pour les réponses d'un formulaire