diff --git a/examples/location/mapviewer/map/MapComponent.qml b/examples/location/mapviewer/map/MapComponent.qml
index d2d526d1f1d5cb0cd767290438677f3b076a6124..008a4a002992c883cc0120e65a53434938ede9a2 100644
--- a/examples/location/mapviewer/map/MapComponent.qml
+++ b/examples/location/mapviewer/map/MapComponent.qml
@@ -377,7 +377,8 @@ Map {
         orientation : Qt.Vertical
         value: map.zoomLevel
         onValueChanged: {
-            map.zoomLevel = value
+            if (value >= 0)
+                map.zoomLevel = value
         }
     }
 
diff --git a/src/imports/location/qdeclarativegeomap.cpp b/src/imports/location/qdeclarativegeomap.cpp
index 9b5c658f330759f01574fef71745d094485ebae7..fd98b2ca2b2b1f22488d523deba3c45af6b7c429 100644
--- a/src/imports/location/qdeclarativegeomap.cpp
+++ b/src/imports/location/qdeclarativegeomap.cpp
@@ -548,13 +548,14 @@ void QDeclarativeGeoMap::mappingManagerInitialized()
     //The zoom level limits are only restricted by the plugins values, if the user has set a more
     //strict zoom level limit before initialization nothing is done here.
     //minimum zoom level might be changed to limit gray bundaries
-    if (m_mappingManager->cameraCapabilities().minimumZoomLevel() > m_gestureArea->minimumZoomLevel())
-        setMinimumZoomLevel(m_mappingManager->cameraCapabilities().minimumZoomLevel());
 
     if (m_gestureArea->maximumZoomLevel() < 0
             || m_mappingManager->cameraCapabilities().maximumZoomLevel() < m_gestureArea->maximumZoomLevel())
         setMaximumZoomLevel(m_mappingManager->cameraCapabilities().maximumZoomLevel());
 
+    if (m_mappingManager->cameraCapabilities().minimumZoomLevel() > m_gestureArea->minimumZoomLevel())
+        setMinimumZoomLevel(m_mappingManager->cameraCapabilities().minimumZoomLevel());
+
 
     // Map tiles are built in this call. m_map->minimumZoom() becomes operational
     // after this has been called at least once, after creation.
diff --git a/src/imports/location/qquickgeomapgesturearea_p.h b/src/imports/location/qquickgeomapgesturearea_p.h
index cfd8738e57f81268bef701230298f88f3e74ccad..51c5cc1ed0454c8b911d1d313347d24c3473f02c 100644
--- a/src/imports/location/qquickgeomapgesturearea_p.h
+++ b/src/imports/location/qquickgeomapgesturearea_p.h
@@ -242,7 +242,7 @@ private:
         bool m_enabled;
         struct Zoom
         {
-            Zoom() : m_minimum(-1.0), m_maximum(-1.0), m_start(0.0), m_previous(0.0),
+            Zoom() : m_minimum(-1.0), m_maximum(20.0), m_start(0.0), m_previous(0.0),
                      maximumChange(4.0) {}
             qreal m_minimum;
             qreal m_maximum;