diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2f3eb9800c964a4c66260e62082ce4cc3bf817ad..dce8b7d225d80854d736c2b839e9e2c78695e43b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+v2.5
+======
+* BUG: private properties in API was not working properly
+
 v2.4
 ======
 
diff --git a/app/config/config_dev.yml b/app/config/config_dev.yml
index 6d9e05a26f227c27cbb6636576e8282efc3b3cc3..cec5e81a17d0041c8849a92d25b9b9944387d28a 100755
--- a/app/config/config_dev.yml
+++ b/app/config/config_dev.yml
@@ -9,7 +9,7 @@ framework:
 
 web_profiler:
     toolbar: true
-    intercept_redirects: true
+    intercept_redirects: false
 
 swiftmailer:
     delivery_address: sebastian.castro@protonmail.com
diff --git a/src/Biopen/CoreBundle/Admin/ConfigurationAPIAdmin.php b/src/Biopen/CoreBundle/Admin/ConfigurationAPIAdmin.php
index dbd593650d4e953470f5c4de62503922d7856637..b6d5a9774dbf6a9029dd84d723395072b8a63465 100755
--- a/src/Biopen/CoreBundle/Admin/ConfigurationAPIAdmin.php
+++ b/src/Biopen/CoreBundle/Admin/ConfigurationAPIAdmin.php
@@ -24,14 +24,19 @@ class ConfigurationAPIAdmin extends ConfigurationAbstractAdmin
         $dm = $this->getConfigurationPool()->getContainer()->get('doctrine_mongodb');
         $apiProperties = $dm->getRepository('BiopenGeoDirectoryBundle:Element')->findAllCustomProperties();
 
+        $apiPropertiesChanged = [];
+        foreach ($apiProperties as $key => $value) {
+            $apiPropertiesChanged[$value] = $value;
+        }
+
         $formMapper
             ->with("Configuration", ["description" => "<div class='iframe-container'><iframe height='200' sandbox='allow-same-origin allow-scripts' src='https://video.colibris-outilslibres.org/videos/embed/aa05a654-a5d6-472a-bb12-108e0f6ce18e' frameborder='0' allowfullscreen></iframe></div>"])
-                ->add('api.protectPublicApiWithToken', 'checkbox', array('label' => "Protéger l'api publique pour récupérer les élément avec des jetons utilisateurs (i.e. besoin de créer un compte pour utiliser l'api publique)", 'required' => false)) 
-                ->add('api.internalApiAuthorizedDomains', 'text', array('label' => "Liste des domaines externe qui utiliseront l'API interne. Mettez * si vous voulez que n'importe quel domaine puisse y avoir accès. Cette option est nécessaire si vous voulez afficher vos données avec GoGoCartoJs mais sur un autre serveur.", 'required' => false)) 
-                ->add('api.publicApiPrivateProperties', 'choice', array("choices" => $apiProperties, 'label' => "Liste des champs que vous ne voulez pas partager dans l'api publique", 'required' => false, 'multiple' => true))
+                ->add('api.protectPublicApiWithToken', 'checkbox', array('label' => "Protéger l'api publique pour récupérer les élément avec des jetons utilisateurs (i.e. besoin de créer un compte pour utiliser l'api publique)", 'required' => false))
+                ->add('api.internalApiAuthorizedDomains', 'text', array('label' => "Liste des domaines externe qui utiliseront l'API interne. Mettez * si vous voulez que n'importe quel domaine puisse y avoir accès. Cette option est nécessaire si vous voulez afficher vos données avec GoGoCartoJs mais sur un autre serveur.", 'required' => false))
+                ->add('api.publicApiPrivateProperties', 'choice', array("choices" => $apiPropertiesChanged, 'label' => "Liste des champs que vous ne voulez pas partager dans l'api publique", 'required' => false, 'multiple' => true))
             ->end()
             ->with("Liste des apis disponibles")
-                ->add('apilist', 'text', array('mapped' => false, 'label' => false, 'required' => false, 'attr' => ['class' => 'gogo-api-list'])) 
+                ->add('apilist', 'text', array('mapped' => false, 'label' => false, 'required' => false, 'attr' => ['class' => 'gogo-api-list']))
             ->end()
         ;
     }
diff --git a/src/Biopen/GeoDirectoryBundle/EventListener/ElementJsonGenerator.php b/src/Biopen/GeoDirectoryBundle/EventListener/ElementJsonGenerator.php
index 359b452b0bdca69069fb91125247fd8cdd905697..624e313bef90dccb4eeee7d079dc03c1384d853c 100644
--- a/src/Biopen/GeoDirectoryBundle/EventListener/ElementJsonGenerator.php
+++ b/src/Biopen/GeoDirectoryBundle/EventListener/ElementJsonGenerator.php
@@ -56,6 +56,7 @@ class ElementJsonGenerator
     if (!$element->getGeo()) { return; }
     $config = $this->getConfig($dm);
     $options = $this->getOptions($dm);
+    $privateProps = $config->getApi()->getPublicApiPrivateProperties();
 
     // -------------------- FULL JSON ----------------
 
@@ -106,8 +107,10 @@ class ElementJsonGenerator
 
     // SPECIFIC DATA
     $baseJson .= $this->encodeArrayObjectToJson("stamps", $element->getStamps());
-    $baseJson .= $this->encodeArrayObjectToJson("images", $element->getImages());
-    $baseJson .= $this->encodeArrayObjectToJson("files", $element->getFiles());
+    $imagesJson = $this->encodeArrayObjectToJson("images", $element->getImages());
+    $filesJson  = $this->encodeArrayObjectToJson("files", $element->getFiles());
+    if (!in_array('images', $privateProps)) $baseJson .= $imagesJson;
+    if (!in_array('files', $privateProps))  $baseJson .= $filesJson;
     $baseJson = rtrim($baseJson, ',');
 
     // MODIFIED ELEMENT (for pending modification)
@@ -128,6 +131,8 @@ class ElementJsonGenerator
     foreach ($element->getPrivateData() as $key => $value) {
         $privateJson .= '"'. $key .'": ' . json_encode($value) . ',';
     }
+    if (in_array('images', $privateProps)) $privateJson .= $imagesJson;
+    if (in_array('files', $privateProps))  $privateJson .= $filesJson;
     $privateJson = rtrim($privateJson, ',');
     $privateJson .= '}';
     $element->setPrivateJson($privateJson);