diff --git a/action/formidable_recuperer_fichier.php b/action/formidable_recuperer_fichier.php
index a688259018f71ce5cd2b8f213831f1920074d009..4385ba2fb217fcac6486d90be2e410ed7e853839 100644
--- a/action/formidable_recuperer_fichier.php
+++ b/action/formidable_recuperer_fichier.php
@@ -1,6 +1,7 @@
 <?php
 if (!defined("_ECRIRE_INC_VERSION")) return;
 include_spip('inc/autoriser');
+include_spip('inc/formidable');
 include_spip('inc/formidable_fichiers');
 /**
  * Récupère, si on est autorisé à voir la réponse du formulaire, 
@@ -10,9 +11,22 @@ include_spip('inc/formidable_fichiers');
 function action_formidable_recuperer_fichier() {
 	$securiser_action = charger_fonction('securiser_action', 'inc');
 	$arg = $securiser_action();
-
 	$arg = unserialize($arg);
-	if (autoriser('voir', 'formulaires_reponse', $arg['formulaire'])) {
+	
+	// test si autorisation de voir la réponse par cookie
+	$cookie_ok = False;
+	if (isset($arg['cookie'])) {
+		$nom_cookie = formidable_generer_nom_cookie($arg['formulaire']);
+		if (isset($_COOKIE[$nom_cookie])) {
+			if ($arg['cookie'] == sha1($_COOKIE[$nom_cookie].secret_du_site())) {
+				$cookie_bdd = sql_getfetsel('cookie', 'spip_formulaires_reponses', 'id_formulaires_reponse='.sql_quote($arg['reponse']));
+				if ($cookie_bdd = $_COOKIE[$nom_cookie]) {
+					$cookie_ok = True;
+				}
+			}
+		}
+	}
+	if (autoriser('voir', 'formulaires_reponse', $arg['formulaire']) or $cookie_ok) {
 		$chemin_fichier = _DIR_FICHIERS_FORMIDABLE
 			."formulaire_".$arg['formulaire'] 
 			."/reponse_".$arg['reponse']
diff --git a/formulaires/formidable.php b/formulaires/formidable.php
index c00cd10fb2c981605f89a5e5b8178d21a5b04ff2..d1ccc9eb6f6e3fb8346a3f0b128905e063b70ba4 100644
--- a/formulaires/formidable.php
+++ b/formulaires/formidable.php
@@ -417,7 +417,7 @@ function formulaires_formidable_traiter($id, $valeurs = array(), $id_formulaires
  *
  * @return array
  *     Tableau des champs de type fichier
-**/
+ **/
 function formulaires_formidable_fichiers($id, $valeurs = array(), $id_formulaires_reponse = false) {
 	// On peut donner soit un id soit un identifiant
 	if (!$id_formulaire = formidable_id_formulaire($id)) {
@@ -452,7 +452,7 @@ function formidable_definir_contexte_avec_reponse($contexte, $id_formulaires_rep
 	$saisies_fichiers = saisies_lister_avec_type($contexte['_saisies'], 'fichiers');// les saisies de type fichier
 	$fichiers = array();
 	$id_formulaire = $contexte['_formidable']['id_formulaire'];
-	
+
 	// On va chercher tous les champs
 	$champs = sql_allfetsel(
 		'nom, valeur',
diff --git a/inc/formidable_fichiers.php b/inc/formidable_fichiers.php
index 5ea09c811b7febc6f002f5cd49a6e02b22f48c31..9a3e7f326347a02ac52f2afe3a7fc12142753d39 100644
--- a/inc/formidable_fichiers.php
+++ b/inc/formidable_fichiers.php
@@ -270,6 +270,14 @@ function formidable_generer_url_action_recuperer_fichier($id_formulaire, $id_for
 		'saisie' => $saisie,
 		'fichier' => $fichier
 	);
+
+	// Pour les utilisateurs non authentifiés, on se base sur le cookier
+	$nom_cookie = formidable_generer_nom_cookie($id_formulaire);
+	if (isset($_COOKIE[$nom_cookie])) {
+		include_spip('inc/securiser_action');
+		$param['cookie'] = sha1($_COOKIE[$nom_cookie].secret_du_site());
+	}
+
 	$param = serialize($param);
 	$securiser_action = charger_fonction('securiser_action','inc');
 	return $securiser_action('formidable_recuperer_fichier',$param,'',      false);