diff --git a/vtm/src/org/oscim/tiling/source/mapfile/MapDatabase.java b/vtm/src/org/oscim/tiling/source/mapfile/MapDatabase.java
index b2529a12..2f004a26 100644
--- a/vtm/src/org/oscim/tiling/source/mapfile/MapDatabase.java
+++ b/vtm/src/org/oscim/tiling/source/mapfile/MapDatabase.java
@@ -217,6 +217,10 @@ public class MapDatabase implements ITileDataSource {
         mTileClipper = new TileClipper(0, 0, 0, 0);
     }
 
+    public MapFileTileSource getTileSource() {
+        return mTileSource;
+    }
+
     @Override
     public void query(MapTile tile, ITileDataSink sink) {
 
diff --git a/vtm/src/org/oscim/tiling/source/mapfile/MultiMapDatabase.java b/vtm/src/org/oscim/tiling/source/mapfile/MultiMapDatabase.java
index 5cd4b4de..b65ffb17 100644
--- a/vtm/src/org/oscim/tiling/source/mapfile/MultiMapDatabase.java
+++ b/vtm/src/org/oscim/tiling/source/mapfile/MultiMapDatabase.java
@@ -24,6 +24,11 @@ import java.util.List;
 public class MultiMapDatabase implements ITileDataSource {
 
     private final List<MapDatabase> mapDatabases = new ArrayList<>();
+    private final MultiMapFileTileSource tileSource;
+
+    public MultiMapDatabase(MultiMapFileTileSource tileSource) {
+        this.tileSource = tileSource;
+    }
 
     public boolean add(MapDatabase mapDatabase) {
         if (mapDatabases.contains(mapDatabase)) {
@@ -36,7 +41,9 @@ public class MultiMapDatabase implements ITileDataSource {
     public void query(MapTile tile, ITileDataSink mapDataSink) {
         MultiMapDataSink multiMapDataSink = new MultiMapDataSink(mapDataSink);
         for (MapDatabase mapDatabase : mapDatabases) {
-            mapDatabase.query(tile, multiMapDataSink);
+            int[] zoomLevels = tileSource.getZoomsByTileSource().get(mapDatabase.getTileSource());
+            if (zoomLevels == null || (zoomLevels[0] <= tile.zoomLevel && tile.zoomLevel <= zoomLevels[1]))
+                mapDatabase.query(tile, multiMapDataSink);
         }
         mapDataSink.completed(multiMapDataSink.getResult());
     }
diff --git a/vtm/src/org/oscim/tiling/source/mapfile/MultiMapFileTileSource.java b/vtm/src/org/oscim/tiling/source/mapfile/MultiMapFileTileSource.java
index 4f7eb1ff..93bed95f 100644
--- a/vtm/src/org/oscim/tiling/source/mapfile/MultiMapFileTileSource.java
+++ b/vtm/src/org/oscim/tiling/source/mapfile/MultiMapFileTileSource.java
@@ -22,13 +22,16 @@ import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 public class MultiMapFileTileSource extends TileSource implements IMapFileTileSource {
 
     private static final Logger log = LoggerFactory.getLogger(MultiMapFileTileSource.class);
 
     private final List<MapFileTileSource> mapFileTileSources = new ArrayList<>();
+    private final Map<MapFileTileSource, int[]> zoomsByTileSource = new HashMap<>();
 
     public MultiMapFileTileSource() {
         this(0, 17);
@@ -45,6 +48,13 @@ public class MultiMapFileTileSource extends TileSource implements IMapFileTileSo
         return mapFileTileSources.add(mapFileTileSource);
     }
 
+    public boolean add(MapFileTileSource mapFileTileSource, int zoomMin, int zoomMax) {
+        boolean result = add(mapFileTileSource);
+        if (result)
+            zoomsByTileSource.put(mapFileTileSource, new int[]{zoomMin, zoomMax});
+        return result;
+    }
+
     public BoundingBox getBoundingBox() {
         BoundingBox boundingBox = null;
         for (MapFileTileSource mapFileTileSource : mapFileTileSources) {
@@ -53,9 +63,13 @@ public class MultiMapFileTileSource extends TileSource implements IMapFileTileSo
         return boundingBox;
     }
 
+    Map<MapFileTileSource, int[]> getZoomsByTileSource() {
+        return zoomsByTileSource;
+    }
+
     @Override
     public ITileDataSource getDataSource() {
-        MultiMapDatabase multiMapDatabase = new MultiMapDatabase();
+        MultiMapDatabase multiMapDatabase = new MultiMapDatabase(this);
         for (MapFileTileSource mapFileTileSource : mapFileTileSources) {
             try {
                 multiMapDatabase.add(new MapDatabase(mapFileTileSource));