diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
index 6be682878da47f1a9825980f3547019b9e75fcd2..a8244f05cf547e6a6edc2327a4e285415fab3f0f 100644
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
@@ -953,6 +953,15 @@ QNetworkSessionPrivate *QNetworkManagerEngine::createSessionBackend()
 
 QNetworkConfigurationPrivatePointer QNetworkManagerEngine::defaultConfiguration()
 {
+    QHashIterator<QString, QNetworkManagerConnectionActive*> i(activeConnectionsList);
+    while (i.hasNext()) {
+        i.next();
+        QNetworkManagerConnectionActive *activeConnection = i.value();
+        if ((activeConnection->defaultRoute() || activeConnection->default6Route())) {
+            return accessPointConfigurations.value(activeConnection->connection().path());
+        }
+    }
+
     return QNetworkConfigurationPrivatePointer();
 }
 
diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
index dd7000bfb8481b76af2e04f941924636b491c7c5..dc3b71ec8eb9089a48cd5d8aff292be78c4f404a 100644
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
@@ -1282,6 +1282,13 @@ bool QNetworkManagerConnectionActive::defaultRoute() const
     return false;
 }
 
+bool QNetworkManagerConnectionActive::default6Route() const
+{
+    if (propertyMap.contains("Default6"))
+        return propertyMap.value("Default6").toBool();
+    return false;
+}
+
 void QNetworkManagerConnectionActive::propertiesSwap(QMap<QString,QVariant> map)
 {
     QMapIterator<QString, QVariant> i(map);
diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h
index 5e3c1c85f194a1ea3117f955765d2de1712e0ab2..da909c443ac6fb1de8f24b5c7a71abf354cd4edd 100644
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h
@@ -499,6 +499,7 @@ public:
     QStringList devices() const;
     quint32 state() const;
     bool defaultRoute() const;
+    bool default6Route() const;
     bool setConnections();
     bool isValid();