diff --git a/src/core/location_provider_qt.cpp b/src/core/location_provider_qt.cpp
index 5f0df2c0c0203a4b9e871fe5a816ddd6f86339c1..d0b783b20160601cb4760543ba1d8ccc9379590f 100644
--- a/src/core/location_provider_qt.cpp
+++ b/src/core/location_provider_qt.cpp
@@ -104,7 +104,8 @@ static bool isHighAccuracySource(const QGeoPositionInfoSource *source)
 void QtPositioningHelper::start(bool highAccuracy)
 {
     DCHECK_CURRENTLY_ON(BrowserThread::UI);
-    m_positionInfoSource = QGeoPositionInfoSource::createDefaultSource(this);
+    if (!m_positionInfoSource)
+        m_positionInfoSource = QGeoPositionInfoSource::createDefaultSource(this);
     if (!m_positionInfoSource) {
         qWarning("Failed to initialize location provider: The system either has no default "
                  "position source, no valid plugins could be found or the user does not have "