Index: /trunk/src/VBox/Main/ConsoleImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/ConsoleImpl.cpp	(revision 446)
+++ /trunk/src/VBox/Main/ConsoleImpl.cpp	(revision 447)
@@ -5328,28 +5328,39 @@
         char *pszExtraDataKey = (char*)strExtraDataKeyUtf8.raw() + 13;
 
-        /* the key will be in the format "Node1/Node2/Value" */
+        /* the key will be in the format "Node1/Node2/Value" or simply "Value". */
+        PCFGMNODE pNode;
         char *pszCFGMValueName = strrchr(pszExtraDataKey, '/');
-        if (!pszCFGMValueName)
-            continue;
-        /* terminate the node and advance to the value */
-        *pszCFGMValueName = '\0';
-        pszCFGMValueName++;
-
-        PCFGMNODE pNode;
-        /* does the node already exist? */
-        pNode = CFGMR3GetChild(pRoot, pszExtraDataKey);
-        if (pNode)
-        {
+        if (pszCFGMValueName)
+        {
+            /* terminate the node and advance to the value */
+            *pszCFGMValueName = '\0';
+            pszCFGMValueName++;
+    
+            /* does the node already exist? */
+            pNode = CFGMR3GetChild(pRoot, pszExtraDataKey);
+            if (pNode)
+            {
+                /* the value might already exist, remove it to be safe */
+                CFGMR3RemoveValue(pNode, pszCFGMValueName);
+            }
+            else
+            {
+                /* create the node */
+                rc = CFGMR3InsertNode(pRoot, pszExtraDataKey, &pNode);
+                AssertMsgRC(rc, ("failed to insert node '%s'\n", pszExtraDataKey));
+                if (VBOX_FAILURE(rc) || !pNode)
+                    continue;
+            }
+        }
+        else
+        {
+            pNode = pRoot;
+            pszCFGMValueName = pszExtraDataKey;
+            pszExtraDataKey--;
+
             /* the value might already exist, remove it to be safe */
             CFGMR3RemoveValue(pNode, pszCFGMValueName);
         }
-        else
-        {
-            /* create the node */
-            rc = CFGMR3InsertNode(pRoot, pszExtraDataKey, &pNode);
-            AssertMsgRC(rc, ("failed to insert node '%s'\n", pszExtraDataKey));
-            if (VBOX_FAILURE(rc) || !pNode)
-                continue;
-        }
+
         /* now let's have a look at the value */
         Utf8Str strCFGMValueUtf8 = Utf8Str(strExtraDataValue);
