Index: DefaultFeatureStore.java
===================================================================
--- DefaultFeatureStore.java	(revision 44258)
+++ DefaultFeatureStore.java	(revision 44259)
@@ -58,6 +58,7 @@
 import org.gvsig.fmap.dal.DataStoreNotification;
 import org.gvsig.fmap.dal.DataStoreParameters;
 import org.gvsig.fmap.dal.DataStoreProviderFactory;
+import org.gvsig.fmap.dal.StoresRepository;
 import org.gvsig.fmap.dal.exception.CloneException;
 import org.gvsig.fmap.dal.exception.CloseException;
 import org.gvsig.fmap.dal.exception.CreateException;
@@ -168,6 +169,9 @@
 import org.gvsig.tools.undo.command.Command;
 import org.gvsig.tools.util.HasAFile;
 import org.gvsig.tools.util.ResourcesStorage;
+import org.gvsig.tools.util.UnmodifiableBasicMap;
+import org.gvsig.tools.util.UnmodifiableBasicSet;
+import org.gvsig.tools.util.UnmodifiableBasicSetChained;
 import org.gvsig.tools.visitor.VisitCanceledException;
 import org.gvsig.tools.visitor.Visitor;
 
@@ -331,32 +335,11 @@
     }
 
     @Override
-    public Iterator<DataStore> getChildren() {
+    public UnmodifiableBasicMap<String,DataStore> getChildren() {
         return this.provider.getChildren();
     }
 
     @Override
-    public DataStore getChild(String name) {
-        return this.provider.getChild(name);
-    }
-
-    @Override
-    public List<String> getChildrenNames() {
-        List<String> names = new ArrayList<>();
-        Iterator<DataStore> it = this.getChildren();
-        while(it.hasNext()) {
-            DataStore store = it.next();
-            names.add(store.getName());
-        }
-        return names;
-    }
-
-    @Override
-    public boolean hasChildren() {
-        return this.provider.hasChildren();
-    }
-
-    @Override
     public FeatureStoreProvider getProvider() {
         return this.provider;
     }
@@ -2934,13 +2917,8 @@
 
     @Override
     public ExpressionBuilder createExpressionBuilder() {
-        ExpressionBuilder builder = null;
-//        if( this.provider instanceof FeatureStoreProvider_v2 ) {
-//            builder = ((FeatureStoreProvider_v2)this.provider).createExpression();
-//        }
-//        if( builder==null ) {
-            builder = ExpressionEvaluatorLocator.getManager().createExpressionBuilder();
-//        }
+        ExpressionBuilder builder;
+        builder = ExpressionEvaluatorLocator.getManager().createExpressionBuilder();
         return builder;
     }
 
@@ -3004,5 +2982,80 @@
     public ResourcesStorage getResourcesStorage() {
         return new DALResourcesStorage(this);
     }
+
+    @Override
+    public StoresRepository getStoresRepository() {
+        final StoresRepository mainRepository = this.dataManager.getStoresRepository();
+        StoresRepository repository = new StoresRepository() {
+            @Override
+            public void add(String name, DataStoreParameters parameters) {
+                mainRepository.add(name, parameters);
+            }
+
+            @Override
+            public void remove(String name) {
+                mainRepository.remove(name);
+            }
+
+            @Override
+            public DataStore get(String key) {
+                DataStore store = getChildren().get(key);
+                if( store != null ) {
+                    return store;
+                }
+                return mainRepository.get(key);
+            }
+
+            @Override
+            public boolean isEmpty() {
+                return getChildren().isEmpty() && mainRepository.isEmpty();
+            }
+
+            @Override
+            public boolean containsKey(String key) {
+                return getChildren().containsKey(key) || mainRepository.containsKey(key);
+            }
+
+            @Override
+            public Map<String, DataStore> toMap() {
+                return null;
+            }
+
+            @Override
+            public int size() {
+                return getChildren().size()+mainRepository.size();
+            }
+
+            @Override
+            public UnmodifiableBasicSet<String> keySet() {
+                UnmodifiableBasicMap<String, DataStore> children = getChildren();
+                if( children.isEmpty() ) {
+                    return mainRepository.keySet();
+                }
+                return new UnmodifiableBasicSetChained<>(
+                        children.keySet(), 
+                        mainRepository.keySet()
+                );
+            }
+
+            @Override
+            public Iterator<DataStore> iterator() {
+                final Iterator<String> it = this.keySet().iterator();
+                return new Iterator<DataStore>() {
+                    @Override
+                    public boolean hasNext() {
+                        return it.hasNext();
+                    }
+
+                    @Override
+                    public DataStore next() {
+                        String name = it.next();
+                        return get(name);
+                    }
+                };
+            }
+        };
+        return repository;
+    }
     
 }
\ No newline at end of file
