diff --git a/provider/core/propertyratiosource.cpp b/provider/core/propertyratiosource.cpp
index bd1a8baf0cb4c23d543940b39007f9d7fd061d29..abf429d29a6a64060790d50282fe27283d52a82f 100644
--- a/provider/core/propertyratiosource.cpp
+++ b/provider/core/propertyratiosource.cpp
@@ -134,8 +134,11 @@ QVariant PropertyRatioSource::data()
     for (auto it = d->ratioSet.constBegin(); it != d->ratioSet.constEnd(); ++it)
         total += it.value();
 
-    for (auto it = d->ratioSet.constBegin(); it != d->ratioSet.constEnd(); ++it)
-        m.insert(it.key(), (double)it.value() / (double)(total));
+    for (auto it = d->ratioSet.constBegin(); it != d->ratioSet.constEnd(); ++it) {
+        QVariantMap v;
+        v.insert(QStringLiteral("property"), (double)it.value() / (double)(total));
+        m.insert(it.key(), v);
+    }
 
     return m;
 }
diff --git a/tests/auto/datasourcetest.cpp b/tests/auto/datasourcetest.cpp
index 92968d67a19e3fa796304fd06f7b3718d7a33221..181c67c2fd648e2d03e0b3660f0a7dba8b47672f 100644
--- a/tests/auto/datasourcetest.cpp
+++ b/tests/auto/datasourcetest.cpp
@@ -99,7 +99,7 @@ private slots:
         o = v.toMap();
         QCOMPARE(o.size(), 1);
         QVERIFY(o.contains(QLatin1String("value1")));
-        v = o.value(QLatin1String("value1"));
+        v = o.value(QLatin1String("value1")).toMap().value(QLatin1String("property"));;
         QCOMPARE(v.type(), QVariant::Double);
 
         setProp(23);
@@ -108,7 +108,7 @@ private slots:
         o = v.toMap();
         QCOMPARE(o.size(), 2);
         QVERIFY(o.contains(QLatin1String("value2")));
-        v = o.value(QLatin1String("value2"));
+        v = o.value(QLatin1String("value2")).toMap().value(QLatin1String("property"));
         QCOMPARE(v.type(), QVariant::Double);
     }