diff --git a/src/tools/sdktool/addkitoperation.cpp b/src/tools/sdktool/addkitoperation.cpp
index 5bb87326dbeaba57441968b03d3a7db100660ea5..1aab466b3569d4d9314769f71750d37e39b9edfc 100644
--- a/src/tools/sdktool/addkitoperation.cpp
+++ b/src/tools/sdktool/addkitoperation.cpp
@@ -372,9 +372,19 @@ bool AddKitOperation::test() const
         return false;
 
     QVariantMap data = profile0.value(QLatin1String(DATA)).toMap();
-    if (data.count() != 8
+    if (data.count() != 6
             || !data.contains(QLatin1String(DEBUGGER))
-            || data.value(QLatin1String(DEBUGGER)).type()!= QVariant::Map)
+            || data.value(QLatin1String(DEBUGGER)).type() != QVariant::Map
+            || !data.contains(QLatin1String(DEVICE_TYPE))
+            || data.value(QLatin1String(DEVICE_TYPE)).toString() != QLatin1String("Desktop")
+            || !data.contains(QLatin1String(TOOLCHAIN))
+            || data.value(QLatin1String(TOOLCHAIN)).toString() != QLatin1String("{tc-id}")
+            || !data.contains(QLatin1String(QT))
+            || data.value(QLatin1String(QT)).toString() != QLatin1String("SDK.{qt-id}")
+            || !data.contains(QLatin1String(MKSPEC))
+            || data.value(QLatin1String(MKSPEC)).toString() != QLatin1String("unsupported/mkspec")
+            || !data.contains(QLatin1String("extraData"))
+            || data.value(QLatin1String("extraData")).toString() != QLatin1String("extraValue"))
         return false;
 
     // Ignore existing ids:
@@ -391,7 +401,7 @@ bool AddKitOperation::test() const
     map = addKit(map, tcMap, qtMap, devMap,
                  QLatin1String("testId2"), QLatin1String("Test Kit2"), QLatin1String("/tmp/icon2.png"),
                  QString(), 1, QLatin1String("/usr/bin/gdb-test2"),
-                 QByteArray("Desktop"), QLatin1String("{dev-id}"), QString(),
+                 QByteArray("Desktop"), QLatin1String("{dev-id}"), QLatin1String("/sys/root\\\\"),
                  QLatin1String("{tc-id}"), QLatin1String("{qt-id}"), QLatin1String("unsupported/mkspec"),
                  KeyValuePairList() << KeyValuePair(QLatin1String("PE.Profile.Data/extraData"), QVariant(QLatin1String("extraValue"))));
     if (map.count() != 5
@@ -425,10 +435,22 @@ bool AddKitOperation::test() const
 
     data = profile1.value(QLatin1String(DATA)).toMap();
     if (data.count() != 8
+            || !data.contains(QLatin1String(DEBUGGER))
+            || data.value(QLatin1String(DEBUGGER)).type() != QVariant::Map
+            || !data.contains(QLatin1String(DEVICE_TYPE))
+            || data.value(QLatin1String(DEVICE_TYPE)).toString() != QLatin1String("Desktop")
             || !data.contains(QLatin1String(DEVICE_ID))
             || data.value(QLatin1String(DEVICE_ID)).toString() != QLatin1String("{dev-id}")
-            || !data.contains(QLatin1String(DEBUGGER))
-            || data.value(QLatin1String(DEBUGGER)).type() != QVariant::Map)
+            || !data.contains(QLatin1String(SYSROOT))
+            || data.value(QLatin1String(SYSROOT)).toString() != QLatin1String("/sys/root\\\\")
+            || !data.contains(QLatin1String(TOOLCHAIN))
+            || data.value(QLatin1String(TOOLCHAIN)).toString() != QLatin1String("{tc-id}")
+            || !data.contains(QLatin1String(QT))
+            || data.value(QLatin1String(QT)).toString() != QLatin1String("SDK.{qt-id}")
+            || !data.contains(QLatin1String(MKSPEC))
+            || data.value(QLatin1String(MKSPEC)).toString() != QLatin1String("unsupported/mkspec")
+            || !data.contains(QLatin1String("extraData"))
+            || data.value(QLatin1String("extraData")).toString() != QLatin1String("extraValue"))
         return false;
 
     // Test debugger id:
@@ -471,7 +493,7 @@ bool AddKitOperation::test() const
         return false;
 
     data = profile2.value(QLatin1String(DATA)).toMap();
-    if (data.count() != 8
+    if (data.count() != 6
             || !data.contains(QLatin1String(DEBUGGER))
             || data.value(QLatin1String(DEBUGGER)).toString() != QLatin1String("debugger Id"))
         return false;
@@ -577,27 +599,35 @@ QVariantMap AddKitOperation::addKit(const QVariantMap &map, const QVariantMap &t
     data << KeyValuePair(QStringList() << kit << QLatin1String(AUTODETECTED), QVariant(true));
     data << KeyValuePair(QStringList() << kit << QLatin1String(SDK), QVariant(true));
 
-    if (debuggerId.isEmpty()) {
+    if (!debuggerId.isNull() || !debugger.isNull()) {
+        if (debuggerId.isEmpty()) {
+            data << KeyValuePair(QStringList() << kit << QLatin1String(DATA)
+                                 << QLatin1String(DEBUGGER) << QLatin1String(DEBUGGER_ENGINE), QVariant(debuggerType));
+            data << KeyValuePair(QStringList() << kit << QLatin1String(DATA)
+                                 << QLatin1String(DEBUGGER) << QLatin1String(DEBUGGER_BINARY), QVariant(debugger));
+        } else {
+            data << KeyValuePair(QStringList() << kit << QLatin1String(DATA) << QLatin1String(DEBUGGER),
+                                 QVariant(debuggerId));
+        }
+    }
+    if (!deviceType.isNull())
         data << KeyValuePair(QStringList() << kit << QLatin1String(DATA)
-                             << QLatin1String(DEBUGGER) << QLatin1String(DEBUGGER_ENGINE), QVariant(debuggerType));
+                             << QLatin1String(DEVICE_TYPE), QVariant(deviceType));
+    if (!device.isNull())
         data << KeyValuePair(QStringList() << kit << QLatin1String(DATA)
-                             << QLatin1String(DEBUGGER) << QLatin1String(DEBUGGER_BINARY), QVariant(debugger));
-    } else {
-        data << KeyValuePair(QStringList() << kit << QLatin1String(DATA) << QLatin1String(DEBUGGER),
-                             QVariant(debuggerId));
-    }
-    data << KeyValuePair(QStringList() << kit << QLatin1String(DATA)
-                         << QLatin1String(DEVICE_TYPE), QVariant(deviceType));
-    data << KeyValuePair(QStringList() << kit << QLatin1String(DATA)
-                         << QLatin1String(DEVICE_ID), QVariant(device));
-    data << KeyValuePair(QStringList() << kit << QLatin1String(DATA)
-                         << QLatin1String(SYSROOT), QVariant(sysRoot));
-    data << KeyValuePair(QStringList() << kit << QLatin1String(DATA)
-                         << QLatin1String(TOOLCHAIN), QVariant(tc));
-    data << KeyValuePair(QStringList() << kit << QLatin1String(DATA)
-                         << QLatin1String(QT), QVariant(qtId));
-    data << KeyValuePair(QStringList() << kit << QLatin1String(DATA)
-                         << QLatin1String(MKSPEC), QVariant(mkspec));
+                             << QLatin1String(DEVICE_ID), QVariant(device));
+    if (!sysRoot.isNull())
+        data << KeyValuePair(QStringList() << kit << QLatin1String(DATA)
+                             << QLatin1String(SYSROOT), QVariant(sysRoot));
+    if (!tc.isNull())
+        data << KeyValuePair(QStringList() << kit << QLatin1String(DATA)
+                             << QLatin1String(TOOLCHAIN), QVariant(tc));
+    if (!qtId.isNull())
+        data << KeyValuePair(QStringList() << kit << QLatin1String(DATA)
+                             << QLatin1String(QT), QVariant(qtId));
+    if (!mkspec.isNull())
+        data << KeyValuePair(QStringList() << kit << QLatin1String(DATA)
+                             << QLatin1String(MKSPEC), QVariant(mkspec));
 
     data << KeyValuePair(QStringList() << QLatin1String(DEFAULT), QVariant(defaultKit));
     data << KeyValuePair(QStringList() << QLatin1String(COUNT), QVariant(count + 1));