diff --git a/src/module_vmap/web_service/ws/MapJSON.class.inc b/src/module_vmap/web_service/ws/MapJSON.class.inc
index b31c07ba67f8e470f522349c22e86321e0e9e9db..7aff50530df0a36ce101dc6531bb6d32af351328 100755
--- a/src/module_vmap/web_service/ws/MapJSON.class.inc
+++ b/src/module_vmap/web_service/ws/MapJSON.class.inc
@@ -267,6 +267,11 @@ class MapJSON extends Vmap {
             else
                 $tmp['is_queryable_getfeatureinfo'] = false;
 
+            if (!empty($oLayer->aFields['service_vm4ms']))
+                $tmp['is_vm4ms_layer'] = $oLayer->aFields['service_vm4ms'];
+            else
+                $tmp['is_vm4ms_layer'] = false;
+
             if (!empty($oLayer->aFields['is_filtered']) && !empty($oLayer->aFields['filter_form']))
                 $tmp['is_filtered'] = $oLayer->aFields['is_filtered'];
             else
@@ -339,6 +344,11 @@ class MapJSON extends Vmap {
 
             $tmp['layer_id'] = $oLayer->aFields['layer_id'];
 
+            // Sources des couches
+            if (($tmp['is_vm4ms_layer'] === true) && !empty($oLayer->aFields['layer_list'])) {
+                $tmp['vm4ms_sources'] = $this->getLayersSources(explode(',', $oLayer->aFields['layer_list']));
+            }
+
             array_push($aThemes[$oLayer->aFields['theme_name']], $tmp);
             unset($tmp);
         }
@@ -346,6 +356,41 @@ class MapJSON extends Vmap {
         return $aThemes;
     }
 
+    /**
+     * Get the vm4ms layers sources
+     *
+     * @param  {array} $aLayers layers names
+     * @return {array} avaliable sources
+     */
+    function getLayersSources($aLayers) {
+
+        $aSources = array();
+        if (!empty($this->aProperties['schema_vm4ms'])) {
+
+            $aFilter = $this->decodeJSONFilter(array(
+                'column' => 'name',
+                'compare_operator' => 'IN',
+                'value' => $aLayers,
+            ));
+
+            $aSQLParams = $aFilter['params'];
+            $aSQLParams['sSchema'] = array('value' => $this->aProperties['schema_vm4ms'], 'type' => 'column_name');
+
+            $sSql = "SELECT name, source_label FROM [sSchema].v_ms_layer WHERE " . $aFilter['request'];
+
+            $oResult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams);
+            if (!$this->oConnection->oBd->enErreur()) {
+                while ($aLigne = $this->oConnection->oBd->ligneSuivante($oResult)) {
+                    if (!empty($aLigne['source_label'])) {
+                        $aSources[$aLigne['name']] = $aLigne['source_label'];
+                    }
+                }
+            }
+        }
+
+        return $aSources;
+    }
+
 }
 
 ?>