diff --git a/src/location/declarativemaps/qdeclarativegeomap.cpp b/src/location/declarativemaps/qdeclarativegeomap.cpp
index 9f53c4d88927a3736c1d76ad7064ed8b42a0811a..1bf5ea87b4b6097bce273e3ad553bb8c8099a43f 100644
--- a/src/location/declarativemaps/qdeclarativegeomap.cpp
+++ b/src/location/declarativemaps/qdeclarativegeomap.cpp
@@ -269,6 +269,9 @@ QDeclarativeGeoMap::~QDeclarativeGeoMap()
     delete m_copyrights.data();
     m_copyrights.clear();
 
+    for (auto obj: qAsConst(m_pendingMapObjects))
+        obj->setMap(nullptr); // worst case: going to be setMap(nullptr)'d twice
+
     delete m_map; // map objects get reset here
 }