Index: trunk/src/VBox/Frontends/VirtualBox/src/VBoxFBOverlay.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/VBoxFBOverlay.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/VBoxFBOverlay.cpp	(revision 74878)
@@ -5800,17 +5800,17 @@
 void VBoxVHWASettings::init(CSession &session)
 {
-    const QString strMachineID = session.GetMachine().GetId();
-
-    mStretchLinearEnabled = gEDataManager->useLinearStretch(strMachineID);
+    const QUuid uMachineID = session.GetMachine().GetId();
+
+    mStretchLinearEnabled = gEDataManager->useLinearStretch(uMachineID);
 
     uint32_t aFourccs[VBOXVHWA_NUMFOURCC];
     int num = 0;
-    if (gEDataManager->usePixelFormatAYUV(strMachineID))
+    if (gEDataManager->usePixelFormatAYUV(uMachineID))
         aFourccs[num++] = FOURCC_AYUV;
-    if (gEDataManager->usePixelFormatUYVY(strMachineID))
+    if (gEDataManager->usePixelFormatUYVY(uMachineID))
         aFourccs[num++] = FOURCC_UYVY;
-    if (gEDataManager->usePixelFormatYUY2(strMachineID))
+    if (gEDataManager->usePixelFormatYUY2(uMachineID))
         aFourccs[num++] = FOURCC_YUY2;
-    if (gEDataManager->usePixelFormatYV12(strMachineID))
+    if (gEDataManager->usePixelFormatYV12(uMachineID))
         aFourccs[num++] = FOURCC_YV12;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 74878)
@@ -93,5 +93,5 @@
 
     /** Notifies about 'extra-data change' event: */
-    void sigExtraDataChange(QString strMachineID, QString strKey, QString strValue);
+    void sigExtraDataChange(const QUuid &aMachineID, const QString &strKey, const QString &strValue);
 
 public:
@@ -105,7 +105,7 @@
 
     /** Preprocess 'extra-data can change' event: */
-    void sltPreprocessExtraDataCanChange(QString strMachineID, QString strKey, QString strValue, bool &fVeto, QString &strVetoReason);
+    void sltPreprocessExtraDataCanChange(const QUuid &aMachineID, const QString &strKey, const QString &strValue, bool &fVeto, QString &strVetoReason);
     /** Preprocess 'extra-data change' event: */
-    void sltPreprocessExtraDataChange(QString strMachineID, QString strKey, QString strValue);
+    void sltPreprocessExtraDataChange(const QUuid &aMachineID, const QString &strKey, const QString &strValue);
 
 protected:
@@ -244,8 +244,8 @@
 }
 
-void UIExtraDataEventHandler::sltPreprocessExtraDataCanChange(QString strMachineID, QString strKey, QString /* strValue */, bool & /* fVeto */, QString & /* strVetoReason */)
+void UIExtraDataEventHandler::sltPreprocessExtraDataCanChange(const QUuid &aMachineID, const QString &strKey, const QString &/* strValue */, bool & /* fVeto */, QString & /* strVetoReason */)
 {
     /* Preprocess global 'extra-data can change' event: */
-    if (QUuid(strMachineID).isNull())
+    if (aMachineID.isNull())
     {
         if (strKey.startsWith("GUI/"))
@@ -259,8 +259,8 @@
 }
 
-void UIExtraDataEventHandler::sltPreprocessExtraDataChange(QString strMachineID, QString strKey, QString strValue)
+void UIExtraDataEventHandler::sltPreprocessExtraDataChange(const QUuid &aMachineID, const QString &strKey, const QString &strValue)
 {
     /* Preprocess global 'extra-data change' event: */
-    if (QUuid(strMachineID).isNull())
+    if (aMachineID.isNull())
     {
         if (strKey.startsWith("GUI/"))
@@ -275,5 +275,5 @@
 
     /* Motify listener about 'extra-data change' event: */
-    emit sigExtraDataChange(strMachineID, strKey, strValue);
+    emit sigExtraDataChange(aMachineID, strKey, strValue);
 }
 
@@ -424,5 +424,5 @@
 {
     /* If proper machine ID passed => return corresponding pixmap/size: */
-    if (index.data(Field_ID).toString() != UIExtraDataManager::GlobalID)
+    if (index.data(Field_ID).toUuid() != UIExtraDataManager::GlobalID)
         pixmap = vboxGlobal().vmGuestOSTypePixmapDefault(index.data(Field_OsTypeID).toString(), &pixmapSize);
     else
@@ -455,6 +455,6 @@
     {
         /* Compare by ID first: */
-        const QString strID1 = leftIdx.data(Field_ID).toString();
-        const QString strID2 = rightIdx.data(Field_ID).toString();
+        const QUuid strID1 = leftIdx.data(Field_ID).toUuid();
+        const QUuid strID2 = rightIdx.data(Field_ID).toUuid();
         if (strID1 == UIExtraDataManager::GlobalID)
             return true;
@@ -494,7 +494,7 @@
       * @{ */
         /** Handles extra-data map acknowledging. */
-        void sltExtraDataMapAcknowledging(QString strID);
+        void sltExtraDataMapAcknowledging(const QUuid &aID);
         /** Handles extra-data change. */
-        void sltExtraDataChange(QString strID, QString strKey, QString strValue);
+        void sltExtraDataChange(const QUuid &aID, const QString &strKey, const QString &strValue);
     /** @} */
 
@@ -504,5 +504,5 @@
       * @{ */
         /** Handles machine (un)registration. */
-        void sltMachineRegistered(QString strID, bool fAdded);
+        void sltMachineRegistered(const QUuid &aID, bool fAdded);
     /** @} */
 
@@ -604,7 +604,7 @@
 
         /** Returns chooser ID for @a iRow. */
-        QString chooserID(int iRow) const;
+        QUuid chooserID(int iRow) const;
         /** Returns current chooser ID. */
-        QString currentChooserID() const;
+        QUuid currentChooserID() const;
 
         /** Returns chooser Name for @a iRow. */
@@ -614,5 +614,5 @@
 
         /** Adds chooser item. */
-        void addChooserItem(const QString &strID,
+        void addChooserItem(const QUuid &aID,
                             const QString &strName,
                             const QString &strOsTypeID,
@@ -622,5 +622,5 @@
                                      const int iPosition = -1);
         /** Adds chooser item by ID. */
-        void addChooserItemByID(const QString &strID,
+        void addChooserItemByID(const QUuid &aID,
                                 const int iPosition = -1);
 
@@ -752,5 +752,5 @@
 }
 
-void UIExtraDataManagerWindow::sltMachineRegistered(QString strID, bool fRegistered)
+void UIExtraDataManagerWindow::sltMachineRegistered(const QUuid &aID, bool fRegistered)
 {
     /* Machine registered: */
@@ -758,26 +758,26 @@
     {
         /* Gather list of 'known IDs': */
-        QStringList knownIDs;
+        QList<QUuid> knownIDs;
         for (int iRow = 0; iRow < m_pModelSourceOfChooser->rowCount(); ++iRow)
-            knownIDs << chooserID(iRow);
+            knownIDs.append(chooserID(iRow));
 
         /* Get machine items: */
         const CMachineVector machines = vboxGlobal().virtualBox().GetMachines();
         /* Look for the proper place to insert new machine item: */
-        QString strPositionID = UIExtraDataManager::GlobalID;
+        QUuid uPositionID = UIExtraDataManager::GlobalID;
         foreach (const CMachine &machine, machines)
         {
             /* Get iterated machine ID: */
-            const QString strIteratedID = machine.GetId();
+            const QUuid uIteratedID = machine.GetId();
             /* If 'iterated ID' equal to 'added ID' => break now: */
-            if (strIteratedID == strID)
+            if (uIteratedID == aID)
                 break;
             /* If 'iterated ID' is 'known ID' => remember it: */
-            if (knownIDs.contains(strIteratedID))
-                strPositionID = strIteratedID;
+            if (knownIDs.contains(uIteratedID))
+                uPositionID = uIteratedID;
         }
 
         /* Add new chooser item into source-model: */
-        addChooserItemByID(strID, knownIDs.indexOf(strPositionID) + 1);
+        addChooserItemByID(aID, knownIDs.indexOf(uPositionID) + 1);
         /* And sort proxy-model: */
         m_pModelProxyOfChooser->sort(0, Qt::AscendingOrder);
@@ -790,21 +790,21 @@
         /* Remove chooser item with 'removed ID' if it is among 'known IDs': */
         for (int iRow = 0; iRow < m_pModelSourceOfChooser->rowCount(); ++iRow)
-            if (chooserID(iRow) == strID)
+            if (chooserID(iRow) == aID)
                 m_pModelSourceOfChooser->removeRow(iRow);
     }
 }
 
-void UIExtraDataManagerWindow::sltExtraDataMapAcknowledging(QString strID)
+void UIExtraDataManagerWindow::sltExtraDataMapAcknowledging(const QUuid &aID)
 {
     /* Update item with 'changed ID' if it is among 'known IDs': */
     for (int iRow = 0; iRow < m_pModelSourceOfChooser->rowCount(); ++iRow)
-        if (chooserID(iRow) == strID)
+        if (chooserID(iRow) == aID)
             m_pModelSourceOfChooser->itemFromIndex(chooserIndex(iRow))->setData(true, Field_Known);
 }
 
-void UIExtraDataManagerWindow::sltExtraDataChange(QString strID, QString strKey, QString strValue)
+void UIExtraDataManagerWindow::sltExtraDataChange(const QUuid &aID, const QString &strKey, const QString &strValue)
 {
     /* Skip unrelated IDs: */
-    if (currentChooserID() != strID)
+    if (currentChooserID() != aID)
         return;
 
@@ -834,5 +834,5 @@
         /* Look for the proper place for 'changed key': */
         QString strPositionKey;
-        foreach (const QString &strIteratedKey, gEDataManager->map(strID).keys())
+        foreach (const QString &strIteratedKey, gEDataManager->map(aID).keys())
         {
             /* If 'iterated key' equal to 'changed key' => break now: */
@@ -871,8 +871,8 @@
 
     /* Add all the new items finally: */
-    const QString strID = index.data(Field_ID).toString();
-    if (!gEDataManager->contains(strID))
-        gEDataManager->hotloadMachineExtraDataMap(strID);
-    const ExtraDataMap data = gEDataManager->map(strID);
+    const QUuid uID = index.data(Field_ID).toUuid();
+    if (!gEDataManager->contains(uID))
+        gEDataManager->hotloadMachineExtraDataMap(uID);
+    const ExtraDataMap data = gEDataManager->map(uID);
     foreach (const QString &strKey, data.keys())
         addDataItem(strKey, data.value(strKey));
@@ -1206,11 +1206,11 @@
             stream.writeStartElement("VirtualBox");
             {
-                const QString strID = currentChooserID();
-                bool fIsMachine = strID != UIExtraDataManager::GlobalID;
+                const QUuid uID = currentChooserID();
+                bool fIsMachine = uID != UIExtraDataManager::GlobalID;
                 const QString strType = fIsMachine ? "Machine" : "Global";
                 stream.writeStartElement(strType);
                 {
                     if (fIsMachine)
-                        stream.writeAttribute("uuid", QString("{%1}").arg(strID));
+                        stream.writeAttribute("uuid", QString("{%1}").arg(uID.toString()));
                     stream.writeStartElement("ExtraData");
                     {
@@ -1298,7 +1298,7 @@
 
             /* Search for the scope ID: */
-            QString strLoadingID;
+            QUuid uLoadingID;
             if (strElementName == "Global")
-                strLoadingID = UIExtraDataManager::GlobalID;
+                uLoadingID = UIExtraDataManager::GlobalID;
             else if (strElementName == "Machine")
             {
@@ -1307,8 +1307,6 @@
                 {
                     const QString strUuid = attributes.value("uuid").toString();
-                    const QUuid uuid = strUuid;
-                    if (!uuid.isNull())
-                        strLoadingID = uuid.toString().remove(QRegExp("[{}]"));
-                    else
+                    const QUuid uLoadingID = strUuid;
+                    if (uLoadingID.isNull())
                         msgCenter().alert(this, MessageType_Warning,
                                           QString("<p>Invalid extra-data ID:</p>"
@@ -1329,5 +1327,5 @@
 
             /* Check extra-data ID: */
-            if (!strLoadingID.isNull() && strLoadingID != currentChooserID() &&
+            if (!uLoadingID.isNull() && uLoadingID != currentChooserID() &&
                 !msgCenter().questionBinary(this, MessageType_Question,
                                             QString("<p>Inconsistent extra-data ID:</p>"
@@ -1335,5 +1333,5 @@
                                                     "<p>Loading: {%2}</p>"
                                                     "<p>Continue with loading?</p>")
-                                                    .arg(currentChooserID(), strLoadingID)))
+                                                    .arg(currentChooserID().toString(), uLoadingID.toString())))
                 break;
         }
@@ -1803,12 +1801,12 @@
 }
 
-QString UIExtraDataManagerWindow::chooserID(int iRow) const
-{
-    return chooserIndex(iRow).data(Field_ID).toString();
-}
-
-QString UIExtraDataManagerWindow::currentChooserID() const
-{
-    return currentChooserIndex().data(Field_ID).toString();
+QUuid UIExtraDataManagerWindow::chooserID(int iRow) const
+{
+    return chooserIndex(iRow).data(Field_ID).toUuid();
+}
+
+QUuid UIExtraDataManagerWindow::currentChooserID() const
+{
+    return currentChooserIndex().data(Field_ID).toUuid();
 }
 
@@ -1823,5 +1821,5 @@
 }
 
-void UIExtraDataManagerWindow::addChooserItem(const QString &strID,
+void UIExtraDataManagerWindow::addChooserItem(const QUuid &aID,
                                               const QString &strName,
                                               const QString &strOsTypeID,
@@ -1835,5 +1833,5 @@
         pItem->setEditable(false);
         /* Contains passed ID: */
-        pItem->setData(strID, Field_ID);
+        pItem->setData(aID, Field_ID);
         /* Contains passed name: */
         pItem->setData(strName, Field_Name);
@@ -1841,5 +1839,5 @@
         pItem->setData(strOsTypeID, Field_OsTypeID);
         /* And designated as known/unknown depending on extra-data manager status: */
-        pItem->setData(gEDataManager->contains(strID), Field_Known);
+        pItem->setData(gEDataManager->contains(aID), Field_Known);
         /* If insert position defined: */
         if (iPosition != -1)
@@ -1865,17 +1863,17 @@
 }
 
-void UIExtraDataManagerWindow::addChooserItemByID(const QString &strID,
+void UIExtraDataManagerWindow::addChooserItemByID(const QUuid &aID,
                                                   const int iPosition /* = -1 */)
 {
     /* Global ID? */
-    if (strID == UIExtraDataManager::GlobalID)
-        return addChooserItem(strID, QString("Global"), QString(), iPosition);
+    if (aID == UIExtraDataManager::GlobalID)
+        return addChooserItem(aID, QString("Global"), QString(), iPosition);
 
     /* Search for the corresponding machine by ID: */
     CVirtualBox vbox = vboxGlobal().virtualBox();
-    const CMachine machine = vbox.FindMachine(strID);
+    const CMachine machine = vbox.FindMachine(aID.toString());
     /* Make sure VM is accessible: */
     if (vbox.isOk() && !machine.isNull() && machine.GetAccessible())
-        return addChooserItem(strID, machine.GetName(), machine.GetOSTypeId(), iPosition);
+        return addChooserItem(aID, machine.GetName(), machine.GetOSTypeId(), iPosition);
 }
 
@@ -2053,5 +2051,5 @@
 /* static */
 UIExtraDataManager *UIExtraDataManager::s_pInstance = 0;
-const QString UIExtraDataManager::GlobalID = QUuid().toString().remove(QRegExp("[{}]"));
+const QUuid UIExtraDataManager::GlobalID;
 
 /* static */
@@ -2088,19 +2086,19 @@
 #endif /* VBOX_GUI_WITH_EXTRADATA_MANAGER_UI */
 
-void UIExtraDataManager::hotloadMachineExtraDataMap(const QString &strID)
+void UIExtraDataManager::hotloadMachineExtraDataMap(const QUuid &aID)
 {
     /* Make sure it is valid ID: */
-    AssertMsgReturnVoid(!strID.isNull() && strID != GlobalID,
-                        ("Invalid VM ID = {%s}\n", strID.toUtf8().constData()));
+    AssertMsgReturnVoid(!aID.isNull() && aID != GlobalID,
+                        ("Invalid VM ID = {%s}\n", aID.toString().toUtf8().constData()));
     /* Which is not loaded yet: */
-    AssertReturnVoid(!m_data.contains(strID));
+    AssertReturnVoid(!m_data.contains(aID));
 
     /* Search for corresponding machine: */
     CVirtualBox vbox = vboxGlobal().virtualBox();
-    CMachine machine = vbox.FindMachine(strID);
+    CMachine machine = vbox.FindMachine(aID.toString());
     AssertReturnVoid(vbox.isOk() && !machine.isNull());
 
     /* Make sure at least empty map is created: */
-    m_data[strID] = ExtraDataMap();
+    m_data[aID] = ExtraDataMap();
 
     /* Do not handle inaccessible machine: */
@@ -2110,14 +2108,14 @@
     /* Load machine extra-data map: */
     foreach (const QString &strKey, machine.GetExtraDataKeys())
-        m_data[strID][strKey] = machine.GetExtraData(strKey);
+        m_data[aID][strKey] = machine.GetExtraData(strKey);
 
     /* Notifies about extra-data map acknowledged: */
-    emit sigExtraDataMapAcknowledging(strID);
-}
-
-QString UIExtraDataManager::extraDataString(const QString &strKey, const QString &strID /* = GlobalID */)
+    emit sigExtraDataMapAcknowledging(aID);
+}
+
+QString UIExtraDataManager::extraDataString(const QString &strKey, const QUuid &aID /* = GlobalID */)
 {
     /* Get the value. Return 'QString()' if not found: */
-    const QString strValue = extraDataStringUnion(strKey, strID);
+    const QString strValue = extraDataStringUnion(strKey, aID);
     if (strValue.isNull())
         return QString();
@@ -2127,5 +2125,5 @@
 }
 
-void UIExtraDataManager::setExtraDataString(const QString &strKey, const QString &strValue, const QString &strID /* = GlobalID */)
+void UIExtraDataManager::setExtraDataString(const QString &strKey, const QString &strValue, const QUuid &aID /* = GlobalID */)
 {
     /* Make sure VBoxSVC is available: */
@@ -2134,9 +2132,9 @@
 
     /* Hot-load machine extra-data map if necessary: */
-    if (strID != GlobalID && !m_data.contains(strID))
-        hotloadMachineExtraDataMap(strID);
+    if (aID != GlobalID && !m_data.contains(aID))
+        hotloadMachineExtraDataMap(aID);
 
     /* Access corresponding map: */
-    ExtraDataMap &data = m_data[strID];
+    ExtraDataMap &data = m_data[aID];
 
     /* [Re]cache passed value: */
@@ -2144,5 +2142,5 @@
 
     /* Global extra-data: */
-    if (strID == GlobalID)
+    if (aID == GlobalID)
     {
         /* Get global object: */
@@ -2158,5 +2156,5 @@
         /* Search for corresponding machine: */
         CVirtualBox vbox = vboxGlobal().virtualBox();
-        const CMachine machine = vbox.FindMachine(strID);
+        const CMachine machine = vbox.FindMachine(aID.toString());
         AssertReturnVoid(vbox.isOk() && !machine.isNull());
         /* Check the configuration access-level: */
@@ -2167,7 +2165,7 @@
         CSession session;
         if (cLevel == ConfigurationAccessLevel_Full)
-            session = vboxGlobal().openSession(strID);
+            session = vboxGlobal().openSession(aID);
         else
-            session = vboxGlobal().openExistingSession(strID);
+            session = vboxGlobal().openExistingSession(aID);
         AssertReturnVoid(!session.isNull());
         /* Get machine from that session: */
@@ -2181,8 +2179,8 @@
 }
 
-QStringList UIExtraDataManager::extraDataStringList(const QString &strKey, const QString &strID /* = GlobalID */)
+QStringList UIExtraDataManager::extraDataStringList(const QString &strKey, const QUuid &aID /* = GlobalID */)
 {
     /* Get the value. Return 'QStringList()' if not found: */
-    const QString strValue = extraDataStringUnion(strKey, strID);
+    const QString strValue = extraDataStringUnion(strKey, aID);
     if (strValue.isNull())
         return QStringList();
@@ -2193,5 +2191,5 @@
 }
 
-void UIExtraDataManager::setExtraDataStringList(const QString &strKey, const QStringList &value, const QString &strID /* = GlobalID */)
+void UIExtraDataManager::setExtraDataStringList(const QString &strKey, const QStringList &value, const QUuid &aID /* = GlobalID */)
 {
     /* Make sure VBoxSVC is available: */
@@ -2200,9 +2198,9 @@
 
     /* Hot-load machine extra-data map if necessary: */
-    if (strID != GlobalID && !m_data.contains(strID))
-        hotloadMachineExtraDataMap(strID);
+    if (aID != GlobalID && !m_data.contains(aID))
+        hotloadMachineExtraDataMap(aID);
 
     /* Access corresponding map: */
-    ExtraDataMap &data = m_data[strID];
+    ExtraDataMap &data = m_data[aID];
 
     /* [Re]cache passed value: */
@@ -2210,5 +2208,5 @@
 
     /* Global extra-data: */
-    if (strID == GlobalID)
+    if (aID == GlobalID)
     {
         /* Get global object: */
@@ -2224,5 +2222,5 @@
         /* Search for corresponding machine: */
         CVirtualBox vbox = vboxGlobal().virtualBox();
-        const CMachine machine = vbox.FindMachine(strID);
+        const CMachine machine = vbox.FindMachine(aID.toString());
         AssertReturnVoid(vbox.isOk() && !machine.isNull());
         /* Check the configuration access-level: */
@@ -2233,7 +2231,7 @@
         CSession session;
         if (cLevel == ConfigurationAccessLevel_Full)
-            session = vboxGlobal().openSession(strID);
+            session = vboxGlobal().openSession(aID);
         else
-            session = vboxGlobal().openExistingSession(strID);
+            session = vboxGlobal().openExistingSession(aID);
         AssertReturnVoid(!session.isNull());
         /* Get machine from that session: */
@@ -2265,7 +2263,7 @@
 }
 
-QStringList UIExtraDataManager::suppressedMessages(const QString &strID /* = GlobalID */)
-{
-    return extraDataStringList(GUI_SuppressMessages, strID);
+QStringList UIExtraDataManager::suppressedMessages(const QUuid &aID /* = GlobalID */)
+{
+    return extraDataStringList(GUI_SuppressMessages, aID);
 }
 
@@ -2357,10 +2355,10 @@
 }
 
-QList<MachineSettingsPageType> UIExtraDataManager::restrictedMachineSettingsPages(const QString &strID)
+QList<MachineSettingsPageType> UIExtraDataManager::restrictedMachineSettingsPages(const QUuid &aID)
 {
     /* Prepare result: */
     QList<MachineSettingsPageType> result;
     /* Get restricted machine-settings-pages: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedMachineSettingsPages, strID))
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedMachineSettingsPages, aID))
     {
         MachineSettingsPageType value = gpConverter->fromInternalString<MachineSettingsPageType>(strValue);
@@ -2979,53 +2977,53 @@
 }
 
-bool UIExtraDataManager::showMachineInSelectorChooser(const QString &strID)
+bool UIExtraDataManager::showMachineInSelectorChooser(const QUuid &aID)
 {
     /* 'True' unless 'restriction' feature allowed: */
-    return !isFeatureAllowed(GUI_HideFromManager, strID);
-}
-
-bool UIExtraDataManager::showMachineInSelectorDetails(const QString &strID)
+    return !isFeatureAllowed(GUI_HideFromManager, aID);
+}
+
+bool UIExtraDataManager::showMachineInSelectorDetails(const QUuid &aID)
 {
     /* 'True' unless 'restriction' feature allowed: */
-    return !isFeatureAllowed(GUI_HideDetails, strID);
-}
-
-bool UIExtraDataManager::machineReconfigurationEnabled(const QString &strID)
+    return !isFeatureAllowed(GUI_HideDetails, aID);
+}
+
+bool UIExtraDataManager::machineReconfigurationEnabled(const QUuid &aID)
 {
     /* 'True' unless 'restriction' feature allowed: */
-    return !isFeatureAllowed(GUI_PreventReconfiguration, strID);
-}
-
-bool UIExtraDataManager::machineSnapshotOperationsEnabled(const QString &strID)
+    return !isFeatureAllowed(GUI_PreventReconfiguration, aID);
+}
+
+bool UIExtraDataManager::machineSnapshotOperationsEnabled(const QUuid &aID)
 {
     /* 'True' unless 'restriction' feature allowed: */
-    return !isFeatureAllowed(GUI_PreventSnapshotOperations, strID);
-}
-
-bool UIExtraDataManager::machineFirstTimeStarted(const QString &strID)
+    return !isFeatureAllowed(GUI_PreventSnapshotOperations, aID);
+}
+
+bool UIExtraDataManager::machineFirstTimeStarted(const QUuid &aID)
 {
     /* 'True' only if feature is allowed: */
-    return isFeatureAllowed(GUI_FirstRun, strID);
-}
-
-void UIExtraDataManager::setMachineFirstTimeStarted(bool fFirstTimeStarted, const QString &strID)
+    return isFeatureAllowed(GUI_FirstRun, aID);
+}
+
+void UIExtraDataManager::setMachineFirstTimeStarted(bool fFirstTimeStarted, const QUuid &aID)
 {
     /* 'True' if feature allowed, null-string otherwise: */
-    setExtraDataString(GUI_FirstRun, toFeatureAllowed(fFirstTimeStarted), strID);
-}
-
-QStringList UIExtraDataManager::machineWindowIconNames(const QString &strID)
-{
-    return extraDataStringList(GUI_MachineWindowIcons, strID);
+    setExtraDataString(GUI_FirstRun, toFeatureAllowed(fFirstTimeStarted), aID);
+}
+
+QStringList UIExtraDataManager::machineWindowIconNames(const QUuid &aID)
+{
+    return extraDataStringList(GUI_MachineWindowIcons, aID);
 }
 
 #ifndef VBOX_WS_MAC
-QString UIExtraDataManager::machineWindowNamePostfix(const QString &strID)
-{
-    return extraDataString(GUI_MachineWindowNamePostfix, strID);
+QString UIExtraDataManager::machineWindowNamePostfix(const QUuid &aID)
+{
+    return extraDataString(GUI_MachineWindowNamePostfix, aID);
 }
 #endif /* !VBOX_WS_MAC */
 
-QRect UIExtraDataManager::machineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QString &strID)
+QRect UIExtraDataManager::machineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QUuid &aID)
 {
     /* Choose corresponding key: */
@@ -3039,5 +3037,5 @@
 
     /* Get corresponding extra-data: */
-    const QStringList data = extraDataStringList(strKey, strID);
+    const QStringList data = extraDataStringList(strKey, aID);
 
     /* Parse loaded data: */
@@ -3061,5 +3059,5 @@
 }
 
-bool UIExtraDataManager::machineWindowShouldBeMaximized(UIVisualStateType visualStateType, ulong uScreenIndex, const QString &strID)
+bool UIExtraDataManager::machineWindowShouldBeMaximized(UIVisualStateType visualStateType, ulong uScreenIndex, const QUuid &aID)
 {
     /* Choose corresponding key: */
@@ -3073,5 +3071,5 @@
 
     /* Get corresponding extra-data: */
-    const QStringList data = extraDataStringList(strKey, strID);
+    const QStringList data = extraDataStringList(strKey, aID);
 
     /* Make sure 5th item has required value: */
@@ -3079,5 +3077,5 @@
 }
 
-void UIExtraDataManager::setMachineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QRect &geometry, bool fMaximized, const QString &strID)
+void UIExtraDataManager::setMachineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QRect &geometry, bool fMaximized, const QUuid &aID)
 {
     /* Choose corresponding key: */
@@ -3100,39 +3098,39 @@
 
     /* Re-cache corresponding extra-data: */
-    setExtraDataStringList(strKey, data, strID);
+    setExtraDataStringList(strKey, data, aID);
 }
 
 #ifndef VBOX_WS_MAC
-bool UIExtraDataManager::menuBarEnabled(const QString &strID)
+bool UIExtraDataManager::menuBarEnabled(const QUuid &aID)
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_MenuBar_Enabled, strID);
-}
-
-void UIExtraDataManager::setMenuBarEnabled(bool fEnabled, const QString &strID)
+    return !isFeatureRestricted(GUI_MenuBar_Enabled, aID);
+}
+
+void UIExtraDataManager::setMenuBarEnabled(bool fEnabled, const QUuid &aID)
 {
     /* 'False' if feature restricted, null-string otherwise: */
-    setExtraDataString(GUI_MenuBar_Enabled, toFeatureRestricted(!fEnabled), strID);
+    setExtraDataString(GUI_MenuBar_Enabled, toFeatureRestricted(!fEnabled), aID);
 }
 #endif /* !VBOX_WS_MAC */
 
-bool UIExtraDataManager::menuBarContextMenuEnabled(const QString &strID)
+bool UIExtraDataManager::menuBarContextMenuEnabled(const QUuid &aID)
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_MenuBar_ContextMenu_Enabled, strID);
-}
-
-void UIExtraDataManager::setMenuBarContextMenuEnabled(bool fEnabled, const QString &strID)
+    return !isFeatureRestricted(GUI_MenuBar_ContextMenu_Enabled, aID);
+}
+
+void UIExtraDataManager::setMenuBarContextMenuEnabled(bool fEnabled, const QUuid &aID)
 {
     /* 'False' if feature restricted, null-string otherwise: */
-    setExtraDataString(GUI_MenuBar_ContextMenu_Enabled, toFeatureRestricted(!fEnabled), strID);
-}
-
-UIExtraDataMetaDefs::MenuType UIExtraDataManager::restrictedRuntimeMenuTypes(const QString &strID)
+    setExtraDataString(GUI_MenuBar_ContextMenu_Enabled, toFeatureRestricted(!fEnabled), aID);
+}
+
+UIExtraDataMetaDefs::MenuType UIExtraDataManager::restrictedRuntimeMenuTypes(const QUuid &aID)
 {
     /* Prepare result: */
     UIExtraDataMetaDefs::MenuType result = UIExtraDataMetaDefs::MenuType_Invalid;
     /* Get restricted runtime-menu-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeMenus, strID))
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeMenus, aID))
     {
         UIExtraDataMetaDefs::MenuType value = gpConverter->fromInternalString<UIExtraDataMetaDefs::MenuType>(strValue);
@@ -3144,5 +3142,5 @@
 }
 
-void UIExtraDataManager::setRestrictedRuntimeMenuTypes(UIExtraDataMetaDefs::MenuType types, const QString &strID)
+void UIExtraDataManager::setRestrictedRuntimeMenuTypes(UIExtraDataMetaDefs::MenuType types, const QUuid &aID)
 {
     /* We have MenuType enum registered, so we can enumerate it: */
@@ -3173,13 +3171,13 @@
     }
     /* Save result: */
-    setExtraDataStringList(GUI_RestrictedRuntimeMenus, result, strID);
-}
-
-UIExtraDataMetaDefs::MenuApplicationActionType UIExtraDataManager::restrictedRuntimeMenuApplicationActionTypes(const QString &strID)
+    setExtraDataStringList(GUI_RestrictedRuntimeMenus, result, aID);
+}
+
+UIExtraDataMetaDefs::MenuApplicationActionType UIExtraDataManager::restrictedRuntimeMenuApplicationActionTypes(const QUuid &aID)
 {
     /* Prepare result: */
     UIExtraDataMetaDefs::MenuApplicationActionType result = UIExtraDataMetaDefs::MenuApplicationActionType_Invalid;
     /* Get restricted runtime-application-menu action-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeApplicationMenuActions, strID))
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeApplicationMenuActions, aID))
     {
         UIExtraDataMetaDefs::MenuApplicationActionType value = gpConverter->fromInternalString<UIExtraDataMetaDefs::MenuApplicationActionType>(strValue);
@@ -3191,5 +3189,5 @@
 }
 
-void UIExtraDataManager::setRestrictedRuntimeMenuApplicationActionTypes(UIExtraDataMetaDefs::MenuApplicationActionType types, const QString &strID)
+void UIExtraDataManager::setRestrictedRuntimeMenuApplicationActionTypes(UIExtraDataMetaDefs::MenuApplicationActionType types, const QUuid &aID)
 {
     /* We have MenuApplicationActionType enum registered, so we can enumerate it: */
@@ -3220,13 +3218,13 @@
     }
     /* Save result: */
-    setExtraDataStringList(GUI_RestrictedRuntimeApplicationMenuActions, result, strID);
-}
-
-UIExtraDataMetaDefs::RuntimeMenuMachineActionType UIExtraDataManager::restrictedRuntimeMenuMachineActionTypes(const QString &strID)
+    setExtraDataStringList(GUI_RestrictedRuntimeApplicationMenuActions, result, aID);
+}
+
+UIExtraDataMetaDefs::RuntimeMenuMachineActionType UIExtraDataManager::restrictedRuntimeMenuMachineActionTypes(const QUuid &aID)
 {
     /* Prepare result: */
     UIExtraDataMetaDefs::RuntimeMenuMachineActionType result = UIExtraDataMetaDefs::RuntimeMenuMachineActionType_Invalid;
     /* Get restricted runtime-machine-menu action-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeMachineMenuActions, strID))
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeMachineMenuActions, aID))
     {
         UIExtraDataMetaDefs::RuntimeMenuMachineActionType value = gpConverter->fromInternalString<UIExtraDataMetaDefs::RuntimeMenuMachineActionType>(strValue);
@@ -3250,5 +3248,5 @@
 }
 
-void UIExtraDataManager::setRestrictedRuntimeMenuMachineActionTypes(UIExtraDataMetaDefs::RuntimeMenuMachineActionType types, const QString &strID)
+void UIExtraDataManager::setRestrictedRuntimeMenuMachineActionTypes(UIExtraDataMetaDefs::RuntimeMenuMachineActionType types, const QUuid &aID)
 {
     /* We have RuntimeMenuMachineActionType enum registered, so we can enumerate it: */
@@ -3283,13 +3281,13 @@
         result << gpConverter->toInternalString(UIExtraDataMetaDefs::RuntimeMenuMachineActionType_Nothing);
     /* Save result: */
-    setExtraDataStringList(GUI_RestrictedRuntimeMachineMenuActions, result, strID);
-}
-
-UIExtraDataMetaDefs::RuntimeMenuViewActionType UIExtraDataManager::restrictedRuntimeMenuViewActionTypes(const QString &strID)
+    setExtraDataStringList(GUI_RestrictedRuntimeMachineMenuActions, result, aID);
+}
+
+UIExtraDataMetaDefs::RuntimeMenuViewActionType UIExtraDataManager::restrictedRuntimeMenuViewActionTypes(const QUuid &aID)
 {
     /* Prepare result: */
     UIExtraDataMetaDefs::RuntimeMenuViewActionType result = UIExtraDataMetaDefs::RuntimeMenuViewActionType_Invalid;
     /* Get restricted runtime-view-menu action-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeViewMenuActions, strID))
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeViewMenuActions, aID))
     {
         UIExtraDataMetaDefs::RuntimeMenuViewActionType value = gpConverter->fromInternalString<UIExtraDataMetaDefs::RuntimeMenuViewActionType>(strValue);
@@ -3301,5 +3299,5 @@
 }
 
-void UIExtraDataManager::setRestrictedRuntimeMenuViewActionTypes(UIExtraDataMetaDefs::RuntimeMenuViewActionType types, const QString &strID)
+void UIExtraDataManager::setRestrictedRuntimeMenuViewActionTypes(UIExtraDataMetaDefs::RuntimeMenuViewActionType types, const QUuid &aID)
 {
     /* We have RuntimeMenuViewActionType enum registered, so we can enumerate it: */
@@ -3330,13 +3328,13 @@
     }
     /* Save result: */
-    setExtraDataStringList(GUI_RestrictedRuntimeViewMenuActions, result, strID);
-}
-
-UIExtraDataMetaDefs::RuntimeMenuInputActionType UIExtraDataManager::restrictedRuntimeMenuInputActionTypes(const QString &strID)
+    setExtraDataStringList(GUI_RestrictedRuntimeViewMenuActions, result, aID);
+}
+
+UIExtraDataMetaDefs::RuntimeMenuInputActionType UIExtraDataManager::restrictedRuntimeMenuInputActionTypes(const QUuid &aID)
 {
     /* Prepare result: */
     UIExtraDataMetaDefs::RuntimeMenuInputActionType result = UIExtraDataMetaDefs::RuntimeMenuInputActionType_Invalid;
     /* Get restricted runtime-machine-menu action-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeInputMenuActions, strID))
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeInputMenuActions, aID))
     {
         UIExtraDataMetaDefs::RuntimeMenuInputActionType value = gpConverter->fromInternalString<UIExtraDataMetaDefs::RuntimeMenuInputActionType>(strValue);
@@ -3348,5 +3346,5 @@
 }
 
-void UIExtraDataManager::setRestrictedRuntimeMenuInputActionTypes(UIExtraDataMetaDefs::RuntimeMenuInputActionType types, const QString &strID)
+void UIExtraDataManager::setRestrictedRuntimeMenuInputActionTypes(UIExtraDataMetaDefs::RuntimeMenuInputActionType types, const QUuid &aID)
 {
     /* We have RuntimeMenuInputActionType enum registered, so we can enumerate it: */
@@ -3377,13 +3375,13 @@
     }
     /* Save result: */
-    setExtraDataStringList(GUI_RestrictedRuntimeInputMenuActions, result, strID);
-}
-
-UIExtraDataMetaDefs::RuntimeMenuDevicesActionType UIExtraDataManager::restrictedRuntimeMenuDevicesActionTypes(const QString &strID)
+    setExtraDataStringList(GUI_RestrictedRuntimeInputMenuActions, result, aID);
+}
+
+UIExtraDataMetaDefs::RuntimeMenuDevicesActionType UIExtraDataManager::restrictedRuntimeMenuDevicesActionTypes(const QUuid &aID)
 {
     /* Prepare result: */
     UIExtraDataMetaDefs::RuntimeMenuDevicesActionType result = UIExtraDataMetaDefs::RuntimeMenuDevicesActionType_Invalid;
     /* Get restricted runtime-devices-menu action-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeDevicesMenuActions, strID))
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeDevicesMenuActions, aID))
     {
         UIExtraDataMetaDefs::RuntimeMenuDevicesActionType value = gpConverter->fromInternalString<UIExtraDataMetaDefs::RuntimeMenuDevicesActionType>(strValue);
@@ -3406,5 +3404,5 @@
 }
 
-void UIExtraDataManager::setRestrictedRuntimeMenuDevicesActionTypes(UIExtraDataMetaDefs::RuntimeMenuDevicesActionType types, const QString &strID)
+void UIExtraDataManager::setRestrictedRuntimeMenuDevicesActionTypes(UIExtraDataMetaDefs::RuntimeMenuDevicesActionType types, const QUuid &aID)
 {
     /* We have RuntimeMenuDevicesActionType enum registered, so we can enumerate it: */
@@ -3439,14 +3437,14 @@
         result << gpConverter->toInternalString(UIExtraDataMetaDefs::RuntimeMenuDevicesActionType_Nothing);
     /* Save result: */
-    setExtraDataStringList(GUI_RestrictedRuntimeDevicesMenuActions, result, strID);
+    setExtraDataStringList(GUI_RestrictedRuntimeDevicesMenuActions, result, aID);
 }
 
 #ifdef VBOX_WITH_DEBUGGER_GUI
-UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType UIExtraDataManager::restrictedRuntimeMenuDebuggerActionTypes(const QString &strID)
+UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType UIExtraDataManager::restrictedRuntimeMenuDebuggerActionTypes(const QUuid &aID)
 {
     /* Prepare result: */
     UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType result = UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType_Invalid;
     /* Get restricted runtime-debugger-menu action-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeDebuggerMenuActions, strID))
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeDebuggerMenuActions, aID))
     {
         UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType value = gpConverter->fromInternalString<UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType>(strValue);
@@ -3458,5 +3456,5 @@
 }
 
-void UIExtraDataManager::setRestrictedRuntimeMenuDebuggerActionTypes(UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType types, const QString &strID)
+void UIExtraDataManager::setRestrictedRuntimeMenuDebuggerActionTypes(UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType types, const QUuid &aID)
 {
     /* We have RuntimeMenuDebuggerActionType enum registered, so we can enumerate it: */
@@ -3487,15 +3485,15 @@
     }
     /* Save result: */
-    setExtraDataStringList(GUI_RestrictedRuntimeDebuggerMenuActions, result, strID);
+    setExtraDataStringList(GUI_RestrictedRuntimeDebuggerMenuActions, result, aID);
 }
 #endif /* VBOX_WITH_DEBUGGER_GUI */
 
 #ifdef VBOX_WS_MAC
-UIExtraDataMetaDefs::MenuWindowActionType UIExtraDataManager::restrictedRuntimeMenuWindowActionTypes(const QString &strID)
+UIExtraDataMetaDefs::MenuWindowActionType UIExtraDataManager::restrictedRuntimeMenuWindowActionTypes(const QUuid &aID)
 {
     /* Prepare result: */
     UIExtraDataMetaDefs::MenuWindowActionType result = UIExtraDataMetaDefs::MenuWindowActionType_Invalid;
     /* Get restricted runtime-window-menu action-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeWindowMenuActions, strID))
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeWindowMenuActions, aID))
     {
         UIExtraDataMetaDefs::MenuWindowActionType value = gpConverter->fromInternalString<UIExtraDataMetaDefs::MenuWindowActionType>(strValue);
@@ -3507,5 +3505,5 @@
 }
 
-void UIExtraDataManager::setRestrictedRuntimeMenuWindowActionTypes(UIExtraDataMetaDefs::MenuWindowActionType types, const QString &strID)
+void UIExtraDataManager::setRestrictedRuntimeMenuWindowActionTypes(UIExtraDataMetaDefs::MenuWindowActionType types, const QUuid &aID)
 {
     /* We have MenuWindowActionType enum registered, so we can enumerate it: */
@@ -3536,14 +3534,14 @@
     }
     /* Save result: */
-    setExtraDataStringList(GUI_RestrictedRuntimeWindowMenuActions, result, strID);
+    setExtraDataStringList(GUI_RestrictedRuntimeWindowMenuActions, result, aID);
 }
 #endif /* VBOX_WS_MAC */
 
-UIExtraDataMetaDefs::MenuHelpActionType UIExtraDataManager::restrictedRuntimeMenuHelpActionTypes(const QString &strID)
+UIExtraDataMetaDefs::MenuHelpActionType UIExtraDataManager::restrictedRuntimeMenuHelpActionTypes(const QUuid &aID)
 {
     /* Prepare result: */
     UIExtraDataMetaDefs::MenuHelpActionType result = UIExtraDataMetaDefs::MenuHelpActionType_Invalid;
     /* Get restricted runtime-help-menu action-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeHelpMenuActions, strID))
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeHelpMenuActions, aID))
     {
         UIExtraDataMetaDefs::MenuHelpActionType value = gpConverter->fromInternalString<UIExtraDataMetaDefs::MenuHelpActionType>(strValue);
@@ -3555,5 +3553,5 @@
 }
 
-void UIExtraDataManager::setRestrictedRuntimeMenuHelpActionTypes(UIExtraDataMetaDefs::MenuHelpActionType types, const QString &strID)
+void UIExtraDataManager::setRestrictedRuntimeMenuHelpActionTypes(UIExtraDataMetaDefs::MenuHelpActionType types, const QUuid &aID)
 {
     /* We have MenuHelpActionType enum registered, so we can enumerate it: */
@@ -3584,13 +3582,13 @@
     }
     /* Save result: */
-    setExtraDataStringList(GUI_RestrictedRuntimeHelpMenuActions, result, strID);
-}
-
-UIVisualStateType UIExtraDataManager::restrictedVisualStates(const QString &strID)
+    setExtraDataStringList(GUI_RestrictedRuntimeHelpMenuActions, result, aID);
+}
+
+UIVisualStateType UIExtraDataManager::restrictedVisualStates(const QUuid &aID)
 {
     /* Prepare result: */
     UIVisualStateType result = UIVisualStateType_Invalid;
     /* Get restricted visual-state-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedVisualStates, strID))
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedVisualStates, aID))
     {
         UIVisualStateType value = gpConverter->fromInternalString<UIVisualStateType>(strValue);
@@ -3602,17 +3600,17 @@
 }
 
-UIVisualStateType UIExtraDataManager::requestedVisualState(const QString &strID)
-{
-    if (isFeatureAllowed(GUI_Fullscreen, strID)) return UIVisualStateType_Fullscreen;
-    if (isFeatureAllowed(GUI_Seamless, strID)) return UIVisualStateType_Seamless;
-    if (isFeatureAllowed(GUI_Scale, strID)) return UIVisualStateType_Scale;
+UIVisualStateType UIExtraDataManager::requestedVisualState(const QUuid &aID)
+{
+    if (isFeatureAllowed(GUI_Fullscreen, aID)) return UIVisualStateType_Fullscreen;
+    if (isFeatureAllowed(GUI_Seamless, aID)) return UIVisualStateType_Seamless;
+    if (isFeatureAllowed(GUI_Scale, aID)) return UIVisualStateType_Scale;
     return UIVisualStateType_Normal;
 }
 
-void UIExtraDataManager::setRequestedVisualState(UIVisualStateType visualState, const QString &strID)
-{
-    setExtraDataString(GUI_Fullscreen, toFeatureAllowed(visualState == UIVisualStateType_Fullscreen), strID);
-    setExtraDataString(GUI_Seamless, toFeatureAllowed(visualState == UIVisualStateType_Seamless), strID);
-    setExtraDataString(GUI_Scale, toFeatureAllowed(visualState == UIVisualStateType_Scale), strID);
+void UIExtraDataManager::setRequestedVisualState(UIVisualStateType visualState, const QUuid &aID)
+{
+    setExtraDataString(GUI_Fullscreen, toFeatureAllowed(visualState == UIVisualStateType_Fullscreen), aID);
+    setExtraDataString(GUI_Seamless, toFeatureAllowed(visualState == UIVisualStateType_Seamless), aID);
+    setExtraDataString(GUI_Scale, toFeatureAllowed(visualState == UIVisualStateType_Scale), aID);
 }
 
@@ -3624,30 +3622,30 @@
 }
 
-bool UIExtraDataManager::distinguishMachineWindowGroups(const QString &strID)
+bool UIExtraDataManager::distinguishMachineWindowGroups(const QUuid &aID)
 {
     /* 'False' unless feature allowed: */
-    return isFeatureAllowed(GUI_DistinguishMachineWindowGroups, strID);
-}
-
-void UIExtraDataManager::setDistinguishMachineWindowGroups(const QString &strID, bool fEnabled)
+    return isFeatureAllowed(GUI_DistinguishMachineWindowGroups, aID);
+}
+
+void UIExtraDataManager::setDistinguishMachineWindowGroups(const QUuid &aID, bool fEnabled)
 {
     /* 'True' if feature allowed, null-string otherwise: */
-    setExtraDataString(GUI_DistinguishMachineWindowGroups, toFeatureAllowed(fEnabled), strID);
+    setExtraDataString(GUI_DistinguishMachineWindowGroups, toFeatureAllowed(fEnabled), aID);
 }
 #endif /* VBOX_WS_X11 */
 
-bool UIExtraDataManager::guestScreenAutoResizeEnabled(const QString &strID)
+bool UIExtraDataManager::guestScreenAutoResizeEnabled(const QUuid &aID)
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_AutoresizeGuest, strID);
-}
-
-void UIExtraDataManager::setGuestScreenAutoResizeEnabled(bool fEnabled, const QString &strID)
+    return !isFeatureRestricted(GUI_AutoresizeGuest, aID);
+}
+
+void UIExtraDataManager::setGuestScreenAutoResizeEnabled(bool fEnabled, const QUuid &aID)
 {
     /* 'False' if feature restricted, null-string otherwise: */
-    setExtraDataString(GUI_AutoresizeGuest, toFeatureRestricted(!fEnabled), strID);
-}
-
-bool UIExtraDataManager::lastGuestScreenVisibilityStatus(ulong uScreenIndex, const QString &strID)
+    setExtraDataString(GUI_AutoresizeGuest, toFeatureRestricted(!fEnabled), aID);
+}
+
+bool UIExtraDataManager::lastGuestScreenVisibilityStatus(ulong uScreenIndex, const QUuid &aID)
 {
     /* Not for primary screen: */
@@ -3658,8 +3656,8 @@
 
     /* 'False' unless feature allowed: */
-    return isFeatureAllowed(strKey, strID);
-}
-
-void UIExtraDataManager::setLastGuestScreenVisibilityStatus(ulong uScreenIndex, bool fEnabled, const QString &strID)
+    return isFeatureAllowed(strKey, aID);
+}
+
+void UIExtraDataManager::setLastGuestScreenVisibilityStatus(ulong uScreenIndex, bool fEnabled, const QUuid &aID)
 {
     /* Not for primary screen: */
@@ -3670,8 +3668,8 @@
 
     /* 'True' if feature allowed, null-string otherwise: */
-    return setExtraDataString(strKey, toFeatureAllowed(fEnabled), strID);
-}
-
-QSize UIExtraDataManager::lastGuestScreenSizeHint(ulong uScreenIndex, const QString &strID)
+    return setExtraDataString(strKey, toFeatureAllowed(fEnabled), aID);
+}
+
+QSize UIExtraDataManager::lastGuestScreenSizeHint(ulong uScreenIndex, const QUuid &aID)
 {
     /* Choose corresponding key: */
@@ -3679,5 +3677,5 @@
 
     /* Get corresponding extra-data: */
-    const QStringList data = extraDataStringList(strKey, strID);
+    const QStringList data = extraDataStringList(strKey, aID);
 
     /* Parse loaded data: */
@@ -3697,5 +3695,5 @@
 }
 
-void UIExtraDataManager::setLastGuestScreenSizeHint(ulong uScreenIndex, const QSize &sizeHint, const QString &strID)
+void UIExtraDataManager::setLastGuestScreenSizeHint(ulong uScreenIndex, const QSize &sizeHint, const QUuid &aID)
 {
     /* Choose corresponding key: */
@@ -3708,8 +3706,8 @@
 
     /* Re-cache corresponding extra-data: */
-    setExtraDataStringList(strKey, data, strID);
-}
-
-int UIExtraDataManager::hostScreenForPassedGuestScreen(int iGuestScreenIndex, const QString &strID)
+    setExtraDataStringList(strKey, data, aID);
+}
+
+int UIExtraDataManager::hostScreenForPassedGuestScreen(int iGuestScreenIndex, const QUuid &aID)
 {
     /* Choose corresponding key: */
@@ -3717,5 +3715,5 @@
 
     /* Get value and convert it to index: */
-    const QString strValue = extraDataString(strKey, strID);
+    const QString strValue = extraDataString(strKey, aID);
     bool fOk = false;
     const int iHostScreenIndex = strValue.toULong(&fOk);
@@ -3725,5 +3723,5 @@
 }
 
-void UIExtraDataManager::setHostScreenForPassedGuestScreen(int iGuestScreenIndex, int iHostScreenIndex, const QString &strID)
+void UIExtraDataManager::setHostScreenForPassedGuestScreen(int iGuestScreenIndex, int iHostScreenIndex, const QUuid &aID)
 {
     /* Choose corresponding key: */
@@ -3731,74 +3729,74 @@
 
     /* Save passed index under corresponding value: */
-    setExtraDataString(strKey, iHostScreenIndex != -1 ? QString::number(iHostScreenIndex) : QString(), strID);
-}
-
-bool UIExtraDataManager::autoMountGuestScreensEnabled(const QString &strID)
+    setExtraDataString(strKey, iHostScreenIndex != -1 ? QString::number(iHostScreenIndex) : QString(), aID);
+}
+
+bool UIExtraDataManager::autoMountGuestScreensEnabled(const QUuid &aID)
 {
     /* Show only if 'allowed' flag is set: */
-    return isFeatureAllowed(GUI_AutomountGuestScreens, strID);
+    return isFeatureAllowed(GUI_AutomountGuestScreens, aID);
 }
 
 #ifdef VBOX_WITH_VIDEOHWACCEL
-bool UIExtraDataManager::useLinearStretch(const QString &strID)
+bool UIExtraDataManager::useLinearStretch(const QUuid &aID)
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_Accelerate2D_StretchLinear, strID);
-}
-
-bool UIExtraDataManager::usePixelFormatYV12(const QString &strID)
+    return !isFeatureRestricted(GUI_Accelerate2D_StretchLinear, aID);
+}
+
+bool UIExtraDataManager::usePixelFormatYV12(const QUuid &aID)
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_Accelerate2D_PixformatYV12, strID);
-}
-
-bool UIExtraDataManager::usePixelFormatUYVY(const QString &strID)
+    return !isFeatureRestricted(GUI_Accelerate2D_PixformatYV12, aID);
+}
+
+bool UIExtraDataManager::usePixelFormatUYVY(const QUuid &aID)
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_Accelerate2D_PixformatUYVY, strID);
-}
-
-bool UIExtraDataManager::usePixelFormatYUY2(const QString &strID)
+    return !isFeatureRestricted(GUI_Accelerate2D_PixformatUYVY, aID);
+}
+
+bool UIExtraDataManager::usePixelFormatYUY2(const QUuid &aID)
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_Accelerate2D_PixformatYUY2, strID);
-}
-
-bool UIExtraDataManager::usePixelFormatAYUV(const QString &strID)
+    return !isFeatureRestricted(GUI_Accelerate2D_PixformatYUY2, aID);
+}
+
+bool UIExtraDataManager::usePixelFormatAYUV(const QUuid &aID)
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_Accelerate2D_PixformatAYUV, strID);
+    return !isFeatureRestricted(GUI_Accelerate2D_PixformatAYUV, aID);
 }
 #endif /* VBOX_WITH_VIDEOHWACCEL */
 
 #ifndef VBOX_WS_MAC
-bool UIExtraDataManager::miniToolbarEnabled(const QString &strID)
+bool UIExtraDataManager::miniToolbarEnabled(const QUuid &aID)
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_ShowMiniToolBar, strID);
-}
-
-void UIExtraDataManager::setMiniToolbarEnabled(bool fEnabled, const QString &strID)
+    return !isFeatureRestricted(GUI_ShowMiniToolBar, aID);
+}
+
+void UIExtraDataManager::setMiniToolbarEnabled(bool fEnabled, const QUuid &aID)
 {
     /* 'False' if feature restricted, null-string otherwise: */
-    setExtraDataString(GUI_ShowMiniToolBar, toFeatureRestricted(!fEnabled), strID);
-}
-
-bool UIExtraDataManager::autoHideMiniToolbar(const QString &strID)
+    setExtraDataString(GUI_ShowMiniToolBar, toFeatureRestricted(!fEnabled), aID);
+}
+
+bool UIExtraDataManager::autoHideMiniToolbar(const QUuid &aID)
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_MiniToolBarAutoHide, strID);
-}
-
-void UIExtraDataManager::setAutoHideMiniToolbar(bool fAutoHide, const QString &strID)
+    return !isFeatureRestricted(GUI_MiniToolBarAutoHide, aID);
+}
+
+void UIExtraDataManager::setAutoHideMiniToolbar(bool fAutoHide, const QUuid &aID)
 {
     /* 'False' if feature restricted, null-string otherwise: */
-    setExtraDataString(GUI_MiniToolBarAutoHide, toFeatureRestricted(!fAutoHide), strID);
-}
-
-Qt::AlignmentFlag UIExtraDataManager::miniToolbarAlignment(const QString &strID)
+    setExtraDataString(GUI_MiniToolBarAutoHide, toFeatureRestricted(!fAutoHide), aID);
+}
+
+Qt::AlignmentFlag UIExtraDataManager::miniToolbarAlignment(const QUuid &aID)
 {
     /* Return Qt::AlignBottom unless MiniToolbarAlignment_Top specified separately: */
-    switch (gpConverter->fromInternalString<MiniToolbarAlignment>(extraDataString(GUI_MiniToolBarAlignment, strID)))
+    switch (gpConverter->fromInternalString<MiniToolbarAlignment>(extraDataString(GUI_MiniToolBarAlignment, aID)))
     {
         case MiniToolbarAlignment_Top: return Qt::AlignTop;
@@ -3808,46 +3806,46 @@
 }
 
-void UIExtraDataManager::setMiniToolbarAlignment(Qt::AlignmentFlag alignment, const QString &strID)
+void UIExtraDataManager::setMiniToolbarAlignment(Qt::AlignmentFlag alignment, const QUuid &aID)
 {
     /* Remove record unless Qt::AlignTop specified separately: */
     switch (alignment)
     {
-        case Qt::AlignTop: setExtraDataString(GUI_MiniToolBarAlignment, gpConverter->toInternalString(MiniToolbarAlignment_Top), strID); return;
+        case Qt::AlignTop: setExtraDataString(GUI_MiniToolBarAlignment, gpConverter->toInternalString(MiniToolbarAlignment_Top), aID); return;
         default: break;
     }
-    setExtraDataString(GUI_MiniToolBarAlignment, QString(), strID);
+    setExtraDataString(GUI_MiniToolBarAlignment, QString(), aID);
 }
 #endif /* VBOX_WS_MAC */
 
-bool UIExtraDataManager::statusBarEnabled(const QString &strID)
+bool UIExtraDataManager::statusBarEnabled(const QUuid &aID)
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_StatusBar_Enabled, strID);
-}
-
-void UIExtraDataManager::setStatusBarEnabled(bool fEnabled, const QString &strID)
+    return !isFeatureRestricted(GUI_StatusBar_Enabled, aID);
+}
+
+void UIExtraDataManager::setStatusBarEnabled(bool fEnabled, const QUuid &aID)
 {
     /* 'False' if feature restricted, null-string otherwise: */
-    setExtraDataString(GUI_StatusBar_Enabled, toFeatureRestricted(!fEnabled), strID);
-}
-
-bool UIExtraDataManager::statusBarContextMenuEnabled(const QString &strID)
+    setExtraDataString(GUI_StatusBar_Enabled, toFeatureRestricted(!fEnabled), aID);
+}
+
+bool UIExtraDataManager::statusBarContextMenuEnabled(const QUuid &aID)
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_StatusBar_ContextMenu_Enabled, strID);
-}
-
-void UIExtraDataManager::setStatusBarContextMenuEnabled(bool fEnabled, const QString &strID)
+    return !isFeatureRestricted(GUI_StatusBar_ContextMenu_Enabled, aID);
+}
+
+void UIExtraDataManager::setStatusBarContextMenuEnabled(bool fEnabled, const QUuid &aID)
 {
     /* 'False' if feature restricted, null-string otherwise: */
-    setExtraDataString(GUI_StatusBar_ContextMenu_Enabled, toFeatureRestricted(!fEnabled), strID);
-}
-
-QList<IndicatorType> UIExtraDataManager::restrictedStatusBarIndicators(const QString &strID)
+    setExtraDataString(GUI_StatusBar_ContextMenu_Enabled, toFeatureRestricted(!fEnabled), aID);
+}
+
+QList<IndicatorType> UIExtraDataManager::restrictedStatusBarIndicators(const QUuid &aID)
 {
     /* Prepare result: */
     QList<IndicatorType> result;
     /* Get restricted status-bar indicators: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedStatusBarIndicators, strID))
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedStatusBarIndicators, aID))
     {
         const IndicatorType value = gpConverter->fromInternalString<IndicatorType>(strValue);
@@ -3859,5 +3857,5 @@
 }
 
-void UIExtraDataManager::setRestrictedStatusBarIndicators(const QList<IndicatorType> &list, const QString &strID)
+void UIExtraDataManager::setRestrictedStatusBarIndicators(const QList<IndicatorType> &list, const QUuid &aID)
 {
     /* Parse passed list: */
@@ -3867,13 +3865,13 @@
 
     /* Re-cache corresponding extra-data: */
-    setExtraDataStringList(GUI_RestrictedStatusBarIndicators, data, strID);
-}
-
-QList<IndicatorType> UIExtraDataManager::statusBarIndicatorOrder(const QString &strID)
+    setExtraDataStringList(GUI_RestrictedStatusBarIndicators, data, aID);
+}
+
+QList<IndicatorType> UIExtraDataManager::statusBarIndicatorOrder(const QUuid &aID)
 {
     /* Prepare result: */
     QList<IndicatorType> result;
     /* Get status-bar indicator order: */
-    foreach (const QString &strValue, extraDataStringList(GUI_StatusBar_IndicatorOrder, strID))
+    foreach (const QString &strValue, extraDataStringList(GUI_StatusBar_IndicatorOrder, aID))
     {
         const IndicatorType value = gpConverter->fromInternalString<IndicatorType>(strValue);
@@ -3917,5 +3915,5 @@
 }
 
-void UIExtraDataManager::setStatusBarIndicatorOrder(const QList<IndicatorType> &list, const QString &strID)
+void UIExtraDataManager::setStatusBarIndicatorOrder(const QList<IndicatorType> &list, const QUuid &aID)
 {
     /* Parse passed list: */
@@ -3925,69 +3923,69 @@
 
     /* Re-cache corresponding extra-data: */
-    setExtraDataStringList(GUI_StatusBar_IndicatorOrder, data, strID);
+    setExtraDataStringList(GUI_StatusBar_IndicatorOrder, data, aID);
 }
 
 #ifdef VBOX_WS_MAC
-bool UIExtraDataManager::realtimeDockIconUpdateEnabled(const QString &strID)
+bool UIExtraDataManager::realtimeDockIconUpdateEnabled(const QUuid &aID)
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_RealtimeDockIconUpdateEnabled, strID);
-}
-
-void UIExtraDataManager::setRealtimeDockIconUpdateEnabled(bool fEnabled, const QString &strID)
+    return !isFeatureRestricted(GUI_RealtimeDockIconUpdateEnabled, aID);
+}
+
+void UIExtraDataManager::setRealtimeDockIconUpdateEnabled(bool fEnabled, const QUuid &aID)
 {
     /* 'False' if feature restricted, null-string otherwise: */
-    setExtraDataString(GUI_RealtimeDockIconUpdateEnabled, toFeatureRestricted(!fEnabled), strID);
-}
-
-int UIExtraDataManager::realtimeDockIconUpdateMonitor(const QString &strID)
-{
-    return extraDataString(GUI_RealtimeDockIconUpdateMonitor, strID).toInt();
-}
-
-void UIExtraDataManager::setRealtimeDockIconUpdateMonitor(int iIndex, const QString &strID)
-{
-    setExtraDataString(GUI_RealtimeDockIconUpdateMonitor, iIndex ? QString::number(iIndex) : QString(), strID);
-}
-
-bool UIExtraDataManager::dockIconDisableOverlay(const QString &strID)
+    setExtraDataString(GUI_RealtimeDockIconUpdateEnabled, toFeatureRestricted(!fEnabled), aID);
+}
+
+int UIExtraDataManager::realtimeDockIconUpdateMonitor(const QUuid &aID)
+{
+    return extraDataString(GUI_RealtimeDockIconUpdateMonitor, aID).toInt();
+}
+
+void UIExtraDataManager::setRealtimeDockIconUpdateMonitor(int iIndex, const QUuid &aID)
+{
+    setExtraDataString(GUI_RealtimeDockIconUpdateMonitor, iIndex ? QString::number(iIndex) : QString(), aID);
+}
+
+bool UIExtraDataManager::dockIconDisableOverlay(const QUuid &aID)
 {
     /* 'False' unless feature allowed: */
-    return isFeatureAllowed(GUI_DockIconDisableOverlay, strID);
-}
-
-void UIExtraDataManager::setDockIconDisableOverlay(bool fDisabled, const QString &strID)
+    return isFeatureAllowed(GUI_DockIconDisableOverlay, aID);
+}
+
+void UIExtraDataManager::setDockIconDisableOverlay(bool fDisabled, const QUuid &aID)
 {
     /* 'True' if feature allowed, null-string otherwise: */
-    setExtraDataString(GUI_DockIconDisableOverlay, toFeatureAllowed(fDisabled), strID);
+    setExtraDataString(GUI_DockIconDisableOverlay, toFeatureAllowed(fDisabled), aID);
 }
 #endif /* VBOX_WS_MAC */
 
-bool UIExtraDataManager::passCADtoGuest(const QString &strID)
+bool UIExtraDataManager::passCADtoGuest(const QUuid &aID)
 {
     /* 'False' unless feature allowed: */
-    return isFeatureAllowed(GUI_PassCAD, strID);
-}
-
-MouseCapturePolicy UIExtraDataManager::mouseCapturePolicy(const QString &strID)
-{
-    return gpConverter->fromInternalString<MouseCapturePolicy>(extraDataString(GUI_MouseCapturePolicy, strID));
-}
-
-GuruMeditationHandlerType UIExtraDataManager::guruMeditationHandlerType(const QString &strID)
-{
-    return gpConverter->fromInternalString<GuruMeditationHandlerType>(extraDataString(GUI_GuruMeditationHandler, strID));
-}
-
-bool UIExtraDataManager::hidLedsSyncState(const QString &strID)
+    return isFeatureAllowed(GUI_PassCAD, aID);
+}
+
+MouseCapturePolicy UIExtraDataManager::mouseCapturePolicy(const QUuid &aID)
+{
+    return gpConverter->fromInternalString<MouseCapturePolicy>(extraDataString(GUI_MouseCapturePolicy, aID));
+}
+
+GuruMeditationHandlerType UIExtraDataManager::guruMeditationHandlerType(const QUuid &aID)
+{
+    return gpConverter->fromInternalString<GuruMeditationHandlerType>(extraDataString(GUI_GuruMeditationHandler, aID));
+}
+
+bool UIExtraDataManager::hidLedsSyncState(const QUuid &aID)
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_HidLedsSync, strID);
-}
-
-double UIExtraDataManager::scaleFactor(const int uScreenIndex, const QString &strID /* = GlobalID */)
+    return !isFeatureRestricted(GUI_HidLedsSync, aID);
+}
+
+double UIExtraDataManager::scaleFactor(const int uScreenIndex, const QUuid &aID /* = GlobalID */)
 {
     /* Get corresponding extra-data for this machine: */
-    QStringList data = extraDataStringList(GUI_ScaleFactor, strID);
+    QStringList data = extraDataStringList(GUI_ScaleFactor, aID);
 
     /* If that fails check the global scale factor: */
@@ -4011,8 +4009,8 @@
 }
 
-QList<double> UIExtraDataManager::scaleFactors(const QString &strID /* = GlobalID */)
+QList<double> UIExtraDataManager::scaleFactors(const QUuid &aID /* = GlobalID */)
 {
     /* Look for the scale factor for this machine first: */
-    QStringList data = extraDataStringList(GUI_ScaleFactor, strID);
+    QStringList data = extraDataStringList(GUI_ScaleFactor, aID);
 
     /* then looks for the global scale factors: */
@@ -4040,7 +4038,7 @@
 }
 
-void UIExtraDataManager::setScaleFactor(double dScaleFactor, const int uScreenIndex, const QString &strID /* = GlobalID */)
-{
-    QStringList data = extraDataStringList(GUI_ScaleFactor, strID);
+void UIExtraDataManager::setScaleFactor(double dScaleFactor, const int uScreenIndex, const QUuid &aID /* = GlobalID */)
+{
+    QStringList data = extraDataStringList(GUI_ScaleFactor, aID);
 
     /* Just make sure that we have corresponding data item: */
@@ -4054,24 +4052,24 @@
     data[uScreenIndex] = QString::number(dScaleFactor);
 
-    setExtraDataStringList(GUI_ScaleFactor, data, strID);
-}
-
-void UIExtraDataManager::setScaleFactors(const QList<double> &scaleFactors, const QString &strID /* = GlobalID */)
+    setExtraDataStringList(GUI_ScaleFactor, data, aID);
+}
+
+void UIExtraDataManager::setScaleFactors(const QList<double> &scaleFactors, const QUuid &aID /* = GlobalID */)
 {
     QStringList data;
     for (int i = 0; i < scaleFactors.size(); ++i)
         data.append(QString::number(scaleFactors[i]));
-    setExtraDataStringList(GUI_ScaleFactor, data, strID);
-}
-
-ScalingOptimizationType UIExtraDataManager::scalingOptimizationType(const QString &strID)
-{
-    return gpConverter->fromInternalString<ScalingOptimizationType>(extraDataString(GUI_Scaling_Optimization, strID));
-}
-
-QRect UIExtraDataManager::informationWindowGeometry(QWidget *pWidget, QWidget *pParentWidget, const QString &strID)
+    setExtraDataStringList(GUI_ScaleFactor, data, aID);
+}
+
+ScalingOptimizationType UIExtraDataManager::scalingOptimizationType(const QUuid &aID)
+{
+    return gpConverter->fromInternalString<ScalingOptimizationType>(extraDataString(GUI_Scaling_Optimization, aID));
+}
+
+QRect UIExtraDataManager::informationWindowGeometry(QWidget *pWidget, QWidget *pParentWidget, const QUuid &aID)
 {
     /* Get corresponding extra-data: */
-    const QStringList data = extraDataStringList(GUI_InformationWindowGeometry, strID);
+    const QStringList data = extraDataStringList(GUI_InformationWindowGeometry, aID);
 
     /* Parse loaded data: */
@@ -4120,8 +4118,8 @@
 }
 
-bool UIExtraDataManager::informationWindowShouldBeMaximized(const QString &strID)
+bool UIExtraDataManager::informationWindowShouldBeMaximized(const QUuid &aID)
 {
     /* Get corresponding extra-data: */
-    const QStringList data = extraDataStringList(GUI_InformationWindowGeometry, strID);
+    const QStringList data = extraDataStringList(GUI_InformationWindowGeometry, aID);
 
     /* Make sure 5th item has required value: */
@@ -4129,5 +4127,5 @@
 }
 
-void UIExtraDataManager::setInformationWindowGeometry(const QRect &geometry, bool fMaximized, const QString &strID)
+void UIExtraDataManager::setInformationWindowGeometry(const QRect &geometry, bool fMaximized, const QUuid &aID)
 {
     /* Serialize passed values: */
@@ -4141,5 +4139,5 @@
 
     /* Re-cache corresponding extra-data: */
-    setExtraDataStringList(GUI_InformationWindowGeometry, data, strID);
+    setExtraDataStringList(GUI_InformationWindowGeometry, data, aID);
 }
 
@@ -4235,15 +4233,15 @@
 }
 
-MachineCloseAction UIExtraDataManager::defaultMachineCloseAction(const QString &strID)
-{
-    return gpConverter->fromInternalString<MachineCloseAction>(extraDataString(GUI_DefaultCloseAction, strID));
-}
-
-MachineCloseAction UIExtraDataManager::restrictedMachineCloseActions(const QString &strID)
+MachineCloseAction UIExtraDataManager::defaultMachineCloseAction(const QUuid &aID)
+{
+    return gpConverter->fromInternalString<MachineCloseAction>(extraDataString(GUI_DefaultCloseAction, aID));
+}
+
+MachineCloseAction UIExtraDataManager::restrictedMachineCloseActions(const QUuid &aID)
 {
     /* Prepare result: */
     MachineCloseAction result = MachineCloseAction_Invalid;
     /* Get restricted machine-close-actions: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedCloseActions, strID))
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedCloseActions, aID))
     {
         MachineCloseAction value = gpConverter->fromInternalString<MachineCloseAction>(strValue);
@@ -4255,17 +4253,17 @@
 }
 
-MachineCloseAction UIExtraDataManager::lastMachineCloseAction(const QString &strID)
-{
-    return gpConverter->fromInternalString<MachineCloseAction>(extraDataString(GUI_LastCloseAction, strID));
-}
-
-void UIExtraDataManager::setLastMachineCloseAction(MachineCloseAction machineCloseAction, const QString &strID)
-{
-    setExtraDataString(GUI_LastCloseAction, gpConverter->toInternalString(machineCloseAction), strID);
-}
-
-QString UIExtraDataManager::machineCloseHookScript(const QString &strID)
-{
-    return extraDataString(GUI_CloseActionHook, strID);
+MachineCloseAction UIExtraDataManager::lastMachineCloseAction(const QUuid &aID)
+{
+    return gpConverter->fromInternalString<MachineCloseAction>(extraDataString(GUI_LastCloseAction, aID));
+}
+
+void UIExtraDataManager::setLastMachineCloseAction(MachineCloseAction machineCloseAction, const QUuid &aID)
+{
+    setExtraDataString(GUI_LastCloseAction, gpConverter->toInternalString(machineCloseAction), aID);
+}
+
+QString UIExtraDataManager::machineCloseHookScript(const QUuid &aID)
+{
+    return extraDataString(GUI_CloseActionHook, aID);
 }
 
@@ -4523,17 +4521,17 @@
 }
 
-void UIExtraDataManager::sltExtraDataChange(QString strMachineID, QString strKey, QString strValue)
+void UIExtraDataManager::sltExtraDataChange(const QUuid &aMachineID, const QString &strKey, const QString &strValue)
 {
     /* Re-cache value only if strMachineID known already: */
-    if (m_data.contains(strMachineID))
+    if (m_data.contains(aMachineID))
     {
         if (!strValue.isEmpty())
-            m_data[strMachineID][strKey] = strValue;
+            m_data[aMachineID][strKey] = strValue;
         else
-            m_data[strMachineID].remove(strKey);
+            m_data[aMachineID].remove(strKey);
     }
 
     /* Global extra-data 'change' event: */
-    if (strMachineID == GlobalID)
+    if (aMachineID == GlobalID)
     {
         if (strKey.startsWith("GUI/"))
@@ -4558,17 +4556,17 @@
         /* Current VM only: */
         if (   vboxGlobal().isVMConsoleProcess()
-            && strMachineID == vboxGlobal().managedVMUuid())
+            && aMachineID == vboxGlobal().managedVMUuid())
         {
             /* HID LEDs sync state changed (allowed if not restricted)? */
             if (strKey == GUI_HidLedsSync)
-                emit sigHidLedsSyncStateChange(!isFeatureRestricted(strKey, strMachineID));
+                emit sigHidLedsSyncStateChange(!isFeatureRestricted(strKey, aMachineID));
 #ifdef VBOX_WS_MAC
             /* 'Dock icon' appearance changed (allowed if not restricted)? */
             else if (strKey == GUI_RealtimeDockIconUpdateEnabled ||
                      strKey == GUI_RealtimeDockIconUpdateMonitor)
-                emit sigDockIconAppearanceChange(!isFeatureRestricted(strKey, strMachineID));
+                emit sigDockIconAppearanceChange(!isFeatureRestricted(strKey, aMachineID));
             /* 'Dock icon overlay' appearance changed (restricted if not allowed)? */
             else if (strKey == GUI_DockIconDisableOverlay)
-                emit sigDockIconOverlayAppearanceChange(isFeatureAllowed(strKey, strMachineID));
+                emit sigDockIconOverlayAppearanceChange(isFeatureAllowed(strKey, aMachineID));
 #endif /* VBOX_WS_MAC */
         }
@@ -4592,20 +4590,20 @@
 #endif /* VBOX_WS_MAC */
             strKey == GUI_RestrictedRuntimeHelpMenuActions)
-            emit sigMenuBarConfigurationChange(strMachineID);
+            emit sigMenuBarConfigurationChange(aMachineID);
         /* Status-bar configuration change: */
         else if (strKey == GUI_StatusBar_Enabled ||
                  strKey == GUI_RestrictedStatusBarIndicators ||
                  strKey == GUI_StatusBar_IndicatorOrder)
-            emit sigStatusBarConfigurationChange(strMachineID);
+            emit sigStatusBarConfigurationChange(aMachineID);
         /* Scale-factor change: */
         else if (strKey ==GUI_ScaleFactor)
-            emit sigScaleFactorChange(strMachineID);
+            emit sigScaleFactorChange(aMachineID);
         /* Scaling optimization type change: */
         else if (strKey == GUI_Scaling_Optimization)
-            emit sigScalingOptimizationTypeChange(strMachineID);
+            emit sigScalingOptimizationTypeChange(aMachineID);
     }
 
     /* Notify listeners: */
-    emit sigExtraDataChange(strMachineID, strKey, strValue);
+    emit sigExtraDataChange(aMachineID, strKey, strValue);
 }
 
@@ -4688,16 +4686,16 @@
 #endif /* VBOX_GUI_WITH_EXTRADATA_MANAGER_UI */
 
-QString UIExtraDataManager::extraDataStringUnion(const QString &strKey, const QString &strID)
+QString UIExtraDataManager::extraDataStringUnion(const QString &strKey, const QUuid &aID)
 {
     /* If passed strID differs from the GlobalID: */
-    if (strID != GlobalID)
+    if (aID != GlobalID)
     {
         /* Search through the machine extra-data first: */
-        MapOfExtraDataMaps::const_iterator itMap = m_data.constFind(strID);
+        MapOfExtraDataMaps::const_iterator itMap = m_data.constFind(aID);
         /* Hot-load machine extra-data map if necessary: */
         if (itMap == m_data.constEnd())
         {
-            hotloadMachineExtraDataMap(strID);
-            itMap = m_data.constFind(strID);
+            hotloadMachineExtraDataMap(aID);
+            itMap = m_data.constFind(aID);
         }
         if (itMap != m_data.constEnd())
@@ -4724,8 +4722,8 @@
 }
 
-bool UIExtraDataManager::isFeatureAllowed(const QString &strKey, const QString &strID /* = GlobalID */)
+bool UIExtraDataManager::isFeatureAllowed(const QString &strKey, const QUuid &aID /* = GlobalID */)
 {
     /* Get the value. Return 'false' if not found: */
-    const QString strValue = extraDataStringUnion(strKey, strID);
+    const QString strValue = extraDataStringUnion(strKey, aID);
     if (strValue.isNull())
         return false;
@@ -4738,8 +4736,8 @@
 }
 
-bool UIExtraDataManager::isFeatureRestricted(const QString &strKey, const QString &strID /* = GlobalID */)
+bool UIExtraDataManager::isFeatureRestricted(const QString &strKey, const QUuid &aID /* = GlobalID */)
 {
     /* Get the value. Return 'false' if not found: */
-    const QString strValue = extraDataStringUnion(strKey, strID);
+    const QString strValue = extraDataStringUnion(strKey, aID);
     if (strValue.isNull())
         return false;
Index: trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 74878)
@@ -23,4 +23,5 @@
 #include <QObject>
 #include <QSize>
+#include <QUuid>
 #ifdef VBOX_GUI_WITH_EXTRADATA_MANAGER_UI
 # include <QPointer>
@@ -38,6 +39,6 @@
 /** Defines the map of extra data values. The index is an extra-data key. */
 typedef QMap<QString, QString> ExtraDataMap;
-/** Defines the map of extra data maps. The index is a UUID string. */
-typedef QMap<QString, ExtraDataMap> MapOfExtraDataMaps;
+/** Defines the map of extra data maps. */
+typedef QMap<QUuid, ExtraDataMap> MapOfExtraDataMaps;
 
 /** Singleton QObject extension
@@ -56,8 +57,8 @@
 
     /** Notifies about extra-data map acknowledging. */
-    void sigExtraDataMapAcknowledging(QString strID);
+    void sigExtraDataMapAcknowledging(const QUuid &aID);
 
     /** Notifies about extra-data change. */
-    void sigExtraDataChange(QString strID, QString strKey, QString strValue);
+    void sigExtraDataChange(const QUuid &aID, const QString &strKey, const QString &strValue);
 
     /** Notifies about GUI language change. */
@@ -72,7 +73,7 @@
 
     /** Notifies about menu-bar configuration change. */
-    void sigMenuBarConfigurationChange(const QString &strMachineID);
+    void sigMenuBarConfigurationChange(const QUuid &aMachineID);
     /** Notifies about status-bar configuration change. */
-    void sigStatusBarConfigurationChange(const QString &strMachineID);
+    void sigStatusBarConfigurationChange(const QUuid &aMachineID);
 
     /** Notifies about HID LEDs synchronization state change. */
@@ -80,12 +81,12 @@
 
     /** Notifies about the scale-factor change. */
-    void sigScaleFactorChange(const QString &strMachineID);
+    void sigScaleFactorChange(const QUuid &aMachineID);
 
     /** Notifies about the scaling optimization type change. */
-    void sigScalingOptimizationTypeChange(const QString &strMachineID);
+    void sigScalingOptimizationTypeChange(const QUuid &aMachineID);
 
 #ifdef VBOX_WS_MAC
     /** Notifies about the HiDPI optimization type change. */
-    void sigHiDPIOptimizationTypeChange(const QString &strMachineID);
+    void sigHiDPIOptimizationTypeChange(const QUuid &aMachineID);
 
     /** Mac OS X: Notifies about 'dock icon' appearance change. */
@@ -98,5 +99,5 @@
 
     /** Global extra-data ID. */
-    static const QString GlobalID;
+    static const QUuid GlobalID;
 
     /** Static Extra-data Manager instance/constructor. */
@@ -113,24 +114,24 @@
       * @{ */
         /** Returns whether Extra-data Manager cached the map with passed @a strID. */
-        bool contains(const QString &strID) const { return m_data.contains(strID); }
+        bool contains(const QUuid &aID) const { return m_data.contains(aID); }
         /** Returns read-only extra-data map for passed @a strID. */
-        const ExtraDataMap map(const QString &strID) const { return m_data.value(strID); }
+        const ExtraDataMap map(const QUuid &aID) const { return m_data.value(aID); }
 
         /** Hot-load machine extra-data map. */
-        void hotloadMachineExtraDataMap(const QString &strID);
+        void hotloadMachineExtraDataMap(const QUuid &aID);
 
         /** Returns extra-data value corresponding to passed @a strKey as QString.
           * If valid @a strID is set => applies to machine extra-data, otherwise => to global one. */
-        QString extraDataString(const QString &strKey, const QString &strID = GlobalID);
+        QString extraDataString(const QString &strKey, const QUuid &aID = GlobalID);
         /** Defines extra-data value corresponding to passed @a strKey as strValue.
           * If valid @a strID is set => applies to machine extra-data, otherwise => to global one. */
-        void setExtraDataString(const QString &strKey, const QString &strValue, const QString &strID = GlobalID);
+        void setExtraDataString(const QString &strKey, const QString &strValue, const QUuid &aID = GlobalID);
 
         /** Returns extra-data value corresponding to passed @a strKey as QStringList.
           * If valid @a strID is set => applies to machine extra-data, otherwise => to global one. */
-        QStringList extraDataStringList(const QString &strKey, const QString &strID = GlobalID);
+        QStringList extraDataStringList(const QString &strKey, const QUuid &aID = GlobalID);
         /** Defines extra-data value corresponding to passed @a strKey as value.
           * If valid @a strID is set => applies to machine extra-data, otherwise => to global one. */
-        void setExtraDataStringList(const QString &strKey, const QStringList &value, const QString &strID = GlobalID);
+        void setExtraDataStringList(const QString &strKey, const QStringList &value, const QUuid &aID = GlobalID);
     /** @} */
 
@@ -144,5 +145,5 @@
       * @{ */
         /** Returns the list of supressed messages for the Message/Popup center frameworks. */
-        QStringList suppressedMessages(const QString &strID = GlobalID);
+        QStringList suppressedMessages(const QUuid &aID = GlobalID);
         /** Defines the @a list of supressed messages for the Message/Popup center frameworks. */
         void setSuppressedMessages(const QStringList &list);
@@ -189,5 +190,5 @@
         QList<GlobalSettingsPageType> restrictedGlobalSettingsPages();
         /** Returns restricted machine settings pages. */
-        QList<MachineSettingsPageType> restrictedMachineSettingsPages(const QString &strID);
+        QList<MachineSettingsPageType> restrictedMachineSettingsPages(const QUuid &aID);
     /** @} */
 
@@ -395,100 +396,100 @@
       * @{ */
         /** Returns whether machine should be shown in selector-window chooser-pane. */
-        bool showMachineInSelectorChooser(const QString &strID);
+        bool showMachineInSelectorChooser(const QUuid &aID);
         /** Returns whether machine should be shown in selector-window details-pane. */
-        bool showMachineInSelectorDetails(const QString &strID);
+        bool showMachineInSelectorDetails(const QUuid &aID);
 
         /** Returns whether machine reconfiguration enabled. */
-        bool machineReconfigurationEnabled(const QString &strID);
+        bool machineReconfigurationEnabled(const QUuid &aID);
         /** Returns whether machine snapshot operations enabled. */
-        bool machineSnapshotOperationsEnabled(const QString &strID);
+        bool machineSnapshotOperationsEnabled(const QUuid &aID);
 
         /** Returns whether this machine is first time started. */
-        bool machineFirstTimeStarted(const QString &strID);
+        bool machineFirstTimeStarted(const QUuid &aID);
         /** Returns whether this machine is fFirstTimeStarted. */
-        void setMachineFirstTimeStarted(bool fFirstTimeStarted, const QString &strID);
+        void setMachineFirstTimeStarted(bool fFirstTimeStarted, const QUuid &aID);
 
         /** Except Mac OS X: Returns redefined machine-window icon names. */
-        QStringList machineWindowIconNames(const QString &strID);
+        QStringList machineWindowIconNames(const QUuid &aID);
 #ifndef VBOX_WS_MAC
         /** Except Mac OS X: Returns redefined machine-window name postfix. */
-        QString machineWindowNamePostfix(const QString &strID);
+        QString machineWindowNamePostfix(const QUuid &aID);
 #endif
 
         /** Returns geometry for machine-window with @a uScreenIndex in @a visualStateType. */
-        QRect machineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QString &strID);
+        QRect machineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QUuid &sID);
         /** Returns whether machine-window with @a uScreenIndex in @a visualStateType should be maximized. */
-        bool machineWindowShouldBeMaximized(UIVisualStateType visualStateType, ulong uScreenIndex, const QString &strID);
+        bool machineWindowShouldBeMaximized(UIVisualStateType visualStateType, ulong uScreenIndex, const QUuid &aID);
         /** Defines @a geometry and @a fMaximized state for machine-window with @a uScreenIndex in @a visualStateType. */
-        void setMachineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QRect &geometry, bool fMaximized, const QString &strID);
+        void setMachineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QRect &geometry, bool fMaximized, const QUuid &aID);
 
 #ifndef VBOX_WS_MAC
         /** Returns whether Runtime UI menu-bar is enabled. */
-        bool menuBarEnabled(const QString &strID);
+        bool menuBarEnabled(const QUuid &aID);
         /** Defines whether Runtime UI menu-bar is @a fEnabled. */
-        void setMenuBarEnabled(bool fEnabled, const QString &strID);
+        void setMenuBarEnabled(bool fEnabled, const QUuid &aID);
 #endif /* !VBOX_WS_MAC */
 
         /** Returns whether Runtime UI menu-bar context-menu is enabled. */
-        bool menuBarContextMenuEnabled(const QString &strID);
+        bool menuBarContextMenuEnabled(const QUuid &aID);
         /** Defines whether Runtime UI menu-bar context-menu is @a fEnabled. */
-        void setMenuBarContextMenuEnabled(bool fEnabled, const QString &strID);
+        void setMenuBarContextMenuEnabled(bool fEnabled, const QUuid &aID);
 
         /** Returns restricted Runtime UI menu types. */
-        UIExtraDataMetaDefs::MenuType restrictedRuntimeMenuTypes(const QString &strID);
+        UIExtraDataMetaDefs::MenuType restrictedRuntimeMenuTypes(const QUuid &aID);
         /** Defines restricted Runtime UI menu types. */
-        void setRestrictedRuntimeMenuTypes(UIExtraDataMetaDefs::MenuType types, const QString &strID);
+        void setRestrictedRuntimeMenuTypes(UIExtraDataMetaDefs::MenuType types, const QUuid &aID);
 
         /** Returns restricted Runtime UI action types for Application menu. */
-        UIExtraDataMetaDefs::MenuApplicationActionType restrictedRuntimeMenuApplicationActionTypes(const QString &strID);
+        UIExtraDataMetaDefs::MenuApplicationActionType restrictedRuntimeMenuApplicationActionTypes(const QUuid &aID);
         /** Defines restricted Runtime UI action types for Application menu. */
-        void setRestrictedRuntimeMenuApplicationActionTypes(UIExtraDataMetaDefs::MenuApplicationActionType types, const QString &strID);
+        void setRestrictedRuntimeMenuApplicationActionTypes(UIExtraDataMetaDefs::MenuApplicationActionType types, const QUuid &aID);
 
         /** Returns restricted Runtime UI action types for Machine menu. */
-        UIExtraDataMetaDefs::RuntimeMenuMachineActionType restrictedRuntimeMenuMachineActionTypes(const QString &strID);
+        UIExtraDataMetaDefs::RuntimeMenuMachineActionType restrictedRuntimeMenuMachineActionTypes(const QUuid &aID);
         /** Defines restricted Runtime UI action types for Machine menu. */
-        void setRestrictedRuntimeMenuMachineActionTypes(UIExtraDataMetaDefs::RuntimeMenuMachineActionType types, const QString &strID);
+        void setRestrictedRuntimeMenuMachineActionTypes(UIExtraDataMetaDefs::RuntimeMenuMachineActionType types, const QUuid &aID);
 
         /** Returns restricted Runtime UI action types for View menu. */
-        UIExtraDataMetaDefs::RuntimeMenuViewActionType restrictedRuntimeMenuViewActionTypes(const QString &strID);
+        UIExtraDataMetaDefs::RuntimeMenuViewActionType restrictedRuntimeMenuViewActionTypes(const QUuid &aID);
         /** Defines restricted Runtime UI action types for View menu. */
-        void setRestrictedRuntimeMenuViewActionTypes(UIExtraDataMetaDefs::RuntimeMenuViewActionType types, const QString &strID);
+        void setRestrictedRuntimeMenuViewActionTypes(UIExtraDataMetaDefs::RuntimeMenuViewActionType types, const QUuid &aID);
 
         /** Returns restricted Runtime UI action types for Input menu. */
-        UIExtraDataMetaDefs::RuntimeMenuInputActionType restrictedRuntimeMenuInputActionTypes(const QString &strID);
+        UIExtraDataMetaDefs::RuntimeMenuInputActionType restrictedRuntimeMenuInputActionTypes(const QUuid &aID);
         /** Defines restricted Runtime UI action types for Input menu. */
-        void setRestrictedRuntimeMenuInputActionTypes(UIExtraDataMetaDefs::RuntimeMenuInputActionType types, const QString &strID);
+        void setRestrictedRuntimeMenuInputActionTypes(UIExtraDataMetaDefs::RuntimeMenuInputActionType types, const QUuid &aID);
 
         /** Returns restricted Runtime UI action types for Devices menu. */
-        UIExtraDataMetaDefs::RuntimeMenuDevicesActionType restrictedRuntimeMenuDevicesActionTypes(const QString &strID);
+        UIExtraDataMetaDefs::RuntimeMenuDevicesActionType restrictedRuntimeMenuDevicesActionTypes(const QUuid &aID);
         /** Defines restricted Runtime UI action types for Devices menu. */
-        void setRestrictedRuntimeMenuDevicesActionTypes(UIExtraDataMetaDefs::RuntimeMenuDevicesActionType types, const QString &strID);
+        void setRestrictedRuntimeMenuDevicesActionTypes(UIExtraDataMetaDefs::RuntimeMenuDevicesActionType types, const QUuid &aID);
 
 #ifdef VBOX_WITH_DEBUGGER_GUI
         /** Returns restricted Runtime UI action types for Debugger menu. */
-        UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType restrictedRuntimeMenuDebuggerActionTypes(const QString &strID);
+        UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType restrictedRuntimeMenuDebuggerActionTypes(const QUuid &aID);
         /** Defines restricted Runtime UI action types for Debugger menu. */
-        void setRestrictedRuntimeMenuDebuggerActionTypes(UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType types, const QString &strID);
+        void setRestrictedRuntimeMenuDebuggerActionTypes(UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType types, const QUuid &aID);
 #endif /* VBOX_WITH_DEBUGGER_GUI */
 
 #ifdef VBOX_WS_MAC
         /** Mac OS X: Returns restricted Runtime UI action types for Window menu. */
-        UIExtraDataMetaDefs::MenuWindowActionType restrictedRuntimeMenuWindowActionTypes(const QString &strID);
+        UIExtraDataMetaDefs::MenuWindowActionType restrictedRuntimeMenuWindowActionTypes(const QUuid &aID);
         /** Mac OS X: Defines restricted Runtime UI action types for Window menu. */
-        void setRestrictedRuntimeMenuWindowActionTypes(UIExtraDataMetaDefs::MenuWindowActionType types, const QString &strID);
+        void setRestrictedRuntimeMenuWindowActionTypes(UIExtraDataMetaDefs::MenuWindowActionType types, const QUuid &aID);
 #endif /* VBOX_WS_MAC */
 
         /** Returns restricted Runtime UI action types for Help menu. */
-        UIExtraDataMetaDefs::MenuHelpActionType restrictedRuntimeMenuHelpActionTypes(const QString &strID);
+        UIExtraDataMetaDefs::MenuHelpActionType restrictedRuntimeMenuHelpActionTypes(const QUuid &aID);
         /** Defines restricted Runtime UI action types for Help menu. */
-        void setRestrictedRuntimeMenuHelpActionTypes(UIExtraDataMetaDefs::MenuHelpActionType types, const QString &strID);
+        void setRestrictedRuntimeMenuHelpActionTypes(UIExtraDataMetaDefs::MenuHelpActionType types, const QUuid &aID);
 
         /** Returns restricted Runtime UI visual-states. */
-        UIVisualStateType restrictedVisualStates(const QString &strID);
+        UIVisualStateType restrictedVisualStates(const QUuid &aID);
 
         /** Returns requested Runtime UI visual-state. */
-        UIVisualStateType requestedVisualState(const QString &strID);
+        UIVisualStateType requestedVisualState(const QUuid &aID);
         /** Defines requested Runtime UI visual-state as @a visualState. */
-        void setRequestedVisualState(UIVisualStateType visualState, const QString &strID);
+        void setRequestedVisualState(UIVisualStateType visualState, const QUuid &aID);
 
 #ifdef VBOX_WS_X11
@@ -497,120 +498,120 @@
 
         /** Returns whether internal machine-window name should be unique. */
-        bool distinguishMachineWindowGroups(const QString &strID);
+        bool distinguishMachineWindowGroups(const QUuid &aID);
         /** Defines whether internal machine-window name should be unique. */
-        void setDistinguishMachineWindowGroups(const QString &strID, bool fEnabled);
+        void setDistinguishMachineWindowGroups(const QUuid &aID, bool fEnabled);
 #endif /* VBOX_WS_X11 */
 
         /** Returns whether guest-screen auto-resize according machine-window size is enabled. */
-        bool guestScreenAutoResizeEnabled(const QString &strID);
+        bool guestScreenAutoResizeEnabled(const QUuid &aID);
         /** Defines whether guest-screen auto-resize according machine-window size is @a fEnabled. */
-        void setGuestScreenAutoResizeEnabled(bool fEnabled, const QString &strID);
+        void setGuestScreenAutoResizeEnabled(bool fEnabled, const QUuid &aID);
 
         /** Returns last guest-screen visibility status for screen with @a uScreenIndex. */
-        bool lastGuestScreenVisibilityStatus(ulong uScreenIndex, const QString &strID);
+        bool lastGuestScreenVisibilityStatus(ulong uScreenIndex, const QUuid &aID);
         /** Defines whether last guest-screen visibility status was @a fEnabled for screen with @a uScreenIndex. */
-        void setLastGuestScreenVisibilityStatus(ulong uScreenIndex, bool fEnabled, const QString &strID);
+        void setLastGuestScreenVisibilityStatus(ulong uScreenIndex, bool fEnabled, const QUuid &aID);
 
         /** Returns last guest-screen size-hint for screen with @a uScreenIndex. */
-        QSize lastGuestScreenSizeHint(ulong uScreenIndex, const QString &strID);
+        QSize lastGuestScreenSizeHint(ulong uScreenIndex, const QUuid &aID);
         /** Defines last guest-screen @a sizeHint for screen with @a uScreenIndex. */
-        void setLastGuestScreenSizeHint(ulong uScreenIndex, const QSize &sizeHint, const QString &strID);
+        void setLastGuestScreenSizeHint(ulong uScreenIndex, const QSize &sizeHint, const QUuid &aID);
 
         /** Returns host-screen index corresponding to passed guest-screen @a iGuestScreenIndex. */
-        int hostScreenForPassedGuestScreen(int iGuestScreenIndex, const QString &strID);
+        int hostScreenForPassedGuestScreen(int iGuestScreenIndex, const QUuid &aID);
         /** Defines @a iHostScreenIndex corresponding to passed guest-screen @a iGuestScreenIndex. */
-        void setHostScreenForPassedGuestScreen(int iGuestScreenIndex, int iHostScreenIndex, const QString &strID);
+        void setHostScreenForPassedGuestScreen(int iGuestScreenIndex, int iHostScreenIndex, const QUuid &aID);
 
         /** Returns whether automatic mounting/unmounting of guest-screens enabled. */
-        bool autoMountGuestScreensEnabled(const QString &strID);
+        bool autoMountGuestScreensEnabled(const QUuid &aID);
 
 #ifdef VBOX_WITH_VIDEOHWACCEL
         /** Returns whether 2D acceleration should use linear sretch. */
-        bool useLinearStretch(const QString &strID);
+        bool useLinearStretch(const QUuid &aID);
         /** Returns whether 2D acceleration should use YV12 pixel format. */
-        bool usePixelFormatYV12(const QString &strID);
+        bool usePixelFormatYV12(const QUuid &aID);
         /** Returns whether 2D acceleration should use UYVY pixel format. */
-        bool usePixelFormatUYVY(const QString &strID);
+        bool usePixelFormatUYVY(const QUuid &aID);
         /** Returns whether 2D acceleration should use YUY2 pixel format. */
-        bool usePixelFormatYUY2(const QString &strID);
+        bool usePixelFormatYUY2(const QUuid &aID);
         /** Returns whether 2D acceleration should use AYUV pixel format. */
-        bool usePixelFormatAYUV(const QString &strID);
+        bool usePixelFormatAYUV(const QUuid &aID);
 #endif /* VBOX_WITH_VIDEOHWACCEL */
 
 #ifndef VBOX_WS_MAC
         /** Returns whether mini-toolbar is enabled for full and seamless screens. */
-        bool miniToolbarEnabled(const QString &strID);
+        bool miniToolbarEnabled(const QUuid &aID);
         /** Defines whether mini-toolbar is @a fEnabled for full and seamless screens. */
-        void setMiniToolbarEnabled(bool fEnabled, const QString &strID);
+        void setMiniToolbarEnabled(bool fEnabled, const QUuid &aID);
 
         /** Returns whether mini-toolbar should auto-hide itself. */
-        bool autoHideMiniToolbar(const QString &strID);
+        bool autoHideMiniToolbar(const QUuid &aID);
         /** Defines whether mini-toolbar should @a fAutoHide itself. */
-        void setAutoHideMiniToolbar(bool fAutoHide, const QString &strID);
+        void setAutoHideMiniToolbar(bool fAutoHide, const QUuid &aID);
 
         /** Returns mini-toolbar alignment. */
-        Qt::AlignmentFlag miniToolbarAlignment(const QString &strID);
+        Qt::AlignmentFlag miniToolbarAlignment(const QUuid &aID);
         /** Returns mini-toolbar @a alignment. */
-        void setMiniToolbarAlignment(Qt::AlignmentFlag alignment, const QString &strID);
+        void setMiniToolbarAlignment(Qt::AlignmentFlag alignment, const QUuid &aID);
 #endif /* VBOX_WS_MAC */
 
         /** Returns whether Runtime UI status-bar is enabled. */
-        bool statusBarEnabled(const QString &strID);
+        bool statusBarEnabled(const QUuid &aID);
         /** Defines whether Runtime UI status-bar is @a fEnabled. */
-        void setStatusBarEnabled(bool fEnabled, const QString &strID);
+        void setStatusBarEnabled(bool fEnabled, const QUuid &aID);
 
         /** Returns whether Runtime UI status-bar context-menu is enabled. */
-        bool statusBarContextMenuEnabled(const QString &strID);
+        bool statusBarContextMenuEnabled(const QUuid &aID);
         /** Defines whether Runtime UI status-bar context-menu is @a fEnabled. */
-        void setStatusBarContextMenuEnabled(bool fEnabled, const QString &strID);
+        void setStatusBarContextMenuEnabled(bool fEnabled, const QUuid &aID);
 
         /** Returns restricted Runtime UI status-bar indicator list. */
-        QList<IndicatorType> restrictedStatusBarIndicators(const QString &strID);
+        QList<IndicatorType> restrictedStatusBarIndicators(const QUuid &aID);
         /** Defines restricted Runtime UI status-bar indicator @a list. */
-        void setRestrictedStatusBarIndicators(const QList<IndicatorType> &list, const QString &strID);
+        void setRestrictedStatusBarIndicators(const QList<IndicatorType> &list, const QUuid &aID);
 
         /** Returns Runtime UI status-bar indicator order list. */
-        QList<IndicatorType> statusBarIndicatorOrder(const QString &strID);
+        QList<IndicatorType> statusBarIndicatorOrder(const QUuid &aID);
         /** Defines Runtime UI status-bar indicator order @a list. */
-        void setStatusBarIndicatorOrder(const QList<IndicatorType> &list, const QString &strID);
+        void setStatusBarIndicatorOrder(const QList<IndicatorType> &list, const QUuid &aID);
 
 #ifdef VBOX_WS_MAC
         /** Mac OS X: Returns whether Dock icon should be updated at runtime. */
-        bool realtimeDockIconUpdateEnabled(const QString &strID);
+        bool realtimeDockIconUpdateEnabled(const QUuid &aID);
         /** Mac OS X: Defines whether Dock icon update should be fEnabled at runtime. */
-        void setRealtimeDockIconUpdateEnabled(bool fEnabled, const QString &strID);
+        void setRealtimeDockIconUpdateEnabled(bool fEnabled, const QUuid &aID);
 
         /** Mac OS X: Returns guest-screen which Dock icon should reflect at runtime. */
-        int realtimeDockIconUpdateMonitor(const QString &strID);
+        int realtimeDockIconUpdateMonitor(const QUuid &aID);
         /** Mac OS X: Defines guest-screen @a iIndex which Dock icon should reflect at runtime. */
-        void setRealtimeDockIconUpdateMonitor(int iIndex, const QString &strID);
+        void setRealtimeDockIconUpdateMonitor(int iIndex, const QUuid &aID);
 
         /** Mac OS X: Returns whether Dock icon overlay is disabled. */
-        bool dockIconDisableOverlay(const QString &strID);
+        bool dockIconDisableOverlay(const QUuid &aID);
         /** Mac OS X: Defines whether Dock icon overlay is @a fDisabled. */
-        void setDockIconDisableOverlay(bool fDisabled, const QString &strID);
+        void setDockIconDisableOverlay(bool fDisabled, const QUuid &aID);
 #endif /* VBOX_WS_MAC */
 
         /** Returns whether machine should pass CAD to guest. */
-        bool passCADtoGuest(const QString &strID);
+        bool passCADtoGuest(const QUuid &aID);
 
         /** Returns the mouse-capture policy. */
-        MouseCapturePolicy mouseCapturePolicy(const QString &strID);
+        MouseCapturePolicy mouseCapturePolicy(const QUuid &aID);
 
         /** Returns redefined guru-meditation handler type. */
-        GuruMeditationHandlerType guruMeditationHandlerType(const QString &strID);
+        GuruMeditationHandlerType guruMeditationHandlerType(const QUuid &aID);
 
         /** Returns whether machine should perform HID LEDs synchronization. */
-        bool hidLedsSyncState(const QString &strID);
+        bool hidLedsSyncState(const QUuid &aID);
 
         /** Returns the scale-factor. */
-        double scaleFactor(const int uScreenIndex, const QString &strID = GlobalID);
-        QList<double> scaleFactors(const QString &strID = GlobalID);
+        double scaleFactor(const int uScreenIndex, const QUuid &aID = GlobalID);
+        QList<double> scaleFactors(const QUuid &aID = GlobalID);
         /** Defines the @a dScaleFactor. */
-        void setScaleFactor(double dScaleFactor, const int uScreenIndex, const QString &strID = GlobalID);
-        void setScaleFactors(const QList<double> &scaleFactors, const QString &strID = GlobalID);
+        void setScaleFactor(double dScaleFactor, const int uScreenIndex, const QUuid &aID = GlobalID);
+        void setScaleFactors(const QList<double> &scaleFactors, const QUuid &aID = GlobalID);
 
         /** Returns the scaling optimization type. */
-        ScalingOptimizationType scalingOptimizationType(const QString &strID);
+        ScalingOptimizationType scalingOptimizationType(const QUuid &aID);
     /** @} */
 
@@ -618,9 +619,9 @@
       * @{ */
         /** Returns information-window geometry using @a pWidget and @a pParentWidget as hints. */
-        QRect informationWindowGeometry(QWidget *pWidget, QWidget *pParentWidget, const QString &strID);
+        QRect informationWindowGeometry(QWidget *pWidget, QWidget *pParentWidget, const QUuid &aID);
         /** Returns whether information-window should be maximized or not. */
-        bool informationWindowShouldBeMaximized(const QString &strID);
+        bool informationWindowShouldBeMaximized(const QUuid &aID);
         /** Defines information-window @a geometry and @a fMaximized state. */
-        void setInformationWindowGeometry(const QRect &geometry, bool fMaximized, const QString &strID);
+        void setInformationWindowGeometry(const QRect &geometry, bool fMaximized, const QUuid &aID);
 
         /** Returns information-window elements. */
@@ -637,15 +638,15 @@
       * @{ */
         /** Returns default machine close action. */
-        MachineCloseAction defaultMachineCloseAction(const QString &strID);
+        MachineCloseAction defaultMachineCloseAction(const QUuid &aID);
         /** Returns restricted machine close actions. */
-        MachineCloseAction restrictedMachineCloseActions(const QString &strID);
+        MachineCloseAction restrictedMachineCloseActions(const QUuid &aID);
 
         /** Returns last machine close action. */
-        MachineCloseAction lastMachineCloseAction(const QString &strID);
+        MachineCloseAction lastMachineCloseAction(const QUuid &aID);
         /** Defines last @a machineCloseAction. */
-        void setLastMachineCloseAction(MachineCloseAction machineCloseAction, const QString &strID);
+        void setLastMachineCloseAction(MachineCloseAction machineCloseAction, const QUuid &aID);
 
         /** Returns machine close hook script name as simple string. */
-        QString machineCloseHookScript(const QString &strID);
+        QString machineCloseHookScript(const QUuid &aID);
     /** @} */
 
@@ -699,5 +700,5 @@
 
     /** Handles 'extra-data change' event: */
-    void sltExtraDataChange(QString strMachineID, QString strKey, QString strValue);
+    void sltExtraDataChange(const QUuid &aMachineID, const QString &strKey, const QString &strValue);
 
 private:
@@ -735,15 +736,15 @@
       * @returns String value if found, null string if not.
       * @param   strKey      The extra-data key to get.
-      * @param   strID       Machine UUID or #GlobalID.
+      * @param   aID         Machine UUID or #GlobalID.
       * @param   strValue    Where to return the value when found. */
-    QString extraDataStringUnion(const QString &strKey, const QString &strID);
+    QString extraDataStringUnion(const QString &strKey, const QUuid &aID);
     /** Determines whether feature corresponding to passed @a strKey is allowed.
-      * If valid @a strID is set => applies to machine and global extra-data,
+      * If valid @a aID is set => applies to machine and global extra-data,
       * otherwise => only to global one. */
-    bool isFeatureAllowed(const QString &strKey, const QString &strID = GlobalID);
+    bool isFeatureAllowed(const QString &strKey, const QUuid &aID = GlobalID);
     /** Determines whether feature corresponding to passed @a strKey is restricted.
-      * If valid @a strID is set => applies to machine and global extra-data,
+      * If valid @a aID is set => applies to machine and global extra-data,
       * otherwise => only to global one. */
-    bool isFeatureRestricted(const QString &strKey, const QString &strID = GlobalID);
+    bool isFeatureRestricted(const QString &strKey, const QUuid &aID = GlobalID);
 
     /** Translates bool flag into QString value. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.cpp	(revision 74878)
@@ -238,4 +238,23 @@
 }
 
+/* static */
+void COMBase::ToSafeArray (const QVector <QUuid> &aVec,
+                           com::SafeArray <BSTR> &aArr)
+{
+    aArr.reset (aVec.size());
+    for (int i = 0; i < aVec.size(); ++ i)
+        aArr [i] = SysAllocString ((const OLECHAR *)
+            (aVec.at (i).isNull() ? 0 : aVec.at(i).toString().utf16()));
+}
+
+/* static */
+void COMBase::FromSafeArray (const com::SafeArray <BSTR> &aArr,
+                             QVector <QUuid> &aVec)
+{
+    aVec.resize (static_cast <int> (aArr.size()));
+    for (int i = 0; i < aVec.size(); ++ i)
+        aVec [i] = QUuid(QString::fromUtf16 (aArr [i]));
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.h	(revision 74878)
@@ -291,4 +291,11 @@
                               QVector<QUuid> &aVec);
 
+    /* Arrays of GUID as BSTR */
+
+    static void ToSafeArray(const QVector<QUuid> &aVec,
+                            com::SafeArray<BSTR> &aArr);
+    static void FromSafeArray(const com::SafeArray<BSTR> &aArr,
+                              QVector<QUuid> &aVec);
+
     /* Arrays of enums. Does a cast similar to what ENUMOut does. */
 
@@ -392,4 +399,48 @@
 
         QString &str;
+        BSTR bstr;
+    };
+
+    /** Adapter to pass QUuid as input BSTR params */
+    class GuidAsBStrIn
+    {
+    public:
+
+        GuidAsBStrIn(const QUuid &s) : bstr(SysAllocString((const OLECHAR *)
+            (s.isNull() ? 0 : s.toString().utf16()))) {}
+
+        ~GuidAsBStrIn()
+        {
+            if (bstr)
+                SysFreeString(bstr);
+        }
+
+        operator BSTR() const { return bstr; }
+
+    private:
+
+        BSTR bstr;
+    };
+
+    /** Adapter to pass QUuid as output BSTR params */
+    class GuidAsBStrOut
+    {
+    public:
+
+        GuidAsBStrOut(QUuid &s) : uuid(s), bstr(0) {}
+
+        ~GuidAsBStrOut()
+        {
+            if (bstr) {
+                uuid = QUuid(QString::fromUtf16(bstr));
+                SysFreeString(bstr);
+            }
+        }
+
+        operator BSTR *() { return &bstr; }
+
+    private:
+
+        QUuid &uuid;
         BSTR bstr;
     };
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/COMWrappers.xsl
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/COMWrappers.xsl	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/COMWrappers.xsl	(revision 74878)
@@ -1402,5 +1402,5 @@
     </xsl:when>
     <!-- string types -->
-    <xsl:when test="@type = 'wstring' or @type = 'uuid'">
+    <xsl:when test="@type = 'wstring'">
       <xsl:choose>
         <xsl:when test="$isIn">
@@ -1413,4 +1413,23 @@
         <xsl:when test="$isOut">
           <xsl:text>BSTROut(a</xsl:text>
+          <xsl:call-template name="capitalize">
+            <xsl:with-param name="str" select="@name"/>
+          </xsl:call-template>
+          <xsl:text>)</xsl:text>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:when>
+    <!-- uuid is represented as string in the com -->
+    <xsl:when test="@type = 'uuid'">
+      <xsl:choose>
+        <xsl:when test="$isIn">
+          <xsl:text>GuidAsBStrIn(a</xsl:text>
+          <xsl:call-template name="capitalize">
+            <xsl:with-param name="str" select="@name"/>
+          </xsl:call-template>
+          <xsl:text>)</xsl:text>
+        </xsl:when>
+        <xsl:when test="$isOut">
+          <xsl:text>GuidAsBStrOut(a</xsl:text>
           <xsl:call-template name="capitalize">
             <xsl:with-param name="str" select="@name"/>
@@ -1532,5 +1551,5 @@
             <!-- standard types -->
             <!--xsl:when test=".='result'">??</xsl:when-->
-            <xsl:when test=".='uuid'">QString</xsl:when>
+            <xsl:when test=".='uuid'">QUuid</xsl:when>
             <xsl:otherwise>
               <xsl:message terminate="yes">
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp	(revision 74878)
@@ -3140,8 +3140,8 @@
 #endif /* VBOX_WITH_DEBUGGER_GUI */
 
-void UIActionPoolRuntime::sltHandleConfigurationChange(const QString &strMachineID)
+void UIActionPoolRuntime::sltHandleConfigurationChange(const QUuid &aMachineID)
 {
     /* Skip unrelated machine IDs: */
-    if (vboxGlobal().managedVMUuid() != strMachineID)
+    if (vboxGlobal().managedVMUuid() != aMachineID)
         return;
 
@@ -3338,6 +3338,6 @@
     connect(gShortcutPool, SIGNAL(sigSelectorShortcutsReloaded()), this, SLOT(sltApplyShortcuts()));
     connect(gShortcutPool, SIGNAL(sigMachineShortcutsReloaded()), this, SLOT(sltApplyShortcuts()));
-    connect(gEDataManager, SIGNAL(sigMenuBarConfigurationChange(const QString&)),
-            this, SLOT(sltHandleConfigurationChange(const QString&)));
+    connect(gEDataManager, SIGNAL(sigMenuBarConfigurationChange(const QUuid &)),
+            this, SLOT(sltHandleConfigurationChange(const QUuid &)));
 
     /* Call to base-class: */
@@ -3348,25 +3348,25 @@
 {
     /* Get machine ID: */
-    const QString strMachineID = vboxGlobal().managedVMUuid();
-    if (strMachineID.isNull())
+    const QUuid aMachineID = vboxGlobal().managedVMUuid();
+    if (aMachineID.isNull())
         return;
 
     /* Recache common action restrictions: */
-    m_restrictedMenus[UIActionRestrictionLevel_Base] =                  gEDataManager->restrictedRuntimeMenuTypes(strMachineID);
-    m_restrictedActionsMenuApplication[UIActionRestrictionLevel_Base] = gEDataManager->restrictedRuntimeMenuApplicationActionTypes(strMachineID);
-    m_restrictedActionsMenuMachine[UIActionRestrictionLevel_Base] =     gEDataManager->restrictedRuntimeMenuMachineActionTypes(strMachineID);
-    m_restrictedActionsMenuView[UIActionRestrictionLevel_Base] =        gEDataManager->restrictedRuntimeMenuViewActionTypes(strMachineID);
-    m_restrictedActionsMenuInput[UIActionRestrictionLevel_Base] =       gEDataManager->restrictedRuntimeMenuInputActionTypes(strMachineID);
-    m_restrictedActionsMenuDevices[UIActionRestrictionLevel_Base] =     gEDataManager->restrictedRuntimeMenuDevicesActionTypes(strMachineID);
+    m_restrictedMenus[UIActionRestrictionLevel_Base] =                  gEDataManager->restrictedRuntimeMenuTypes(aMachineID);
+    m_restrictedActionsMenuApplication[UIActionRestrictionLevel_Base] = gEDataManager->restrictedRuntimeMenuApplicationActionTypes(aMachineID);
+    m_restrictedActionsMenuMachine[UIActionRestrictionLevel_Base] =     gEDataManager->restrictedRuntimeMenuMachineActionTypes(aMachineID);
+    m_restrictedActionsMenuView[UIActionRestrictionLevel_Base] =        gEDataManager->restrictedRuntimeMenuViewActionTypes(aMachineID);
+    m_restrictedActionsMenuInput[UIActionRestrictionLevel_Base] =       gEDataManager->restrictedRuntimeMenuInputActionTypes(aMachineID);
+    m_restrictedActionsMenuDevices[UIActionRestrictionLevel_Base] =     gEDataManager->restrictedRuntimeMenuDevicesActionTypes(aMachineID);
 #ifdef VBOX_WITH_DEBUGGER_GUI
-    m_restrictedActionsMenuDebug[UIActionRestrictionLevel_Base] =       gEDataManager->restrictedRuntimeMenuDebuggerActionTypes(strMachineID);
+    m_restrictedActionsMenuDebug[UIActionRestrictionLevel_Base] =       gEDataManager->restrictedRuntimeMenuDebuggerActionTypes(aMachineID);
 #endif /* VBOX_WITH_DEBUGGER_GUI */
 #ifdef VBOX_WS_MAC
-    m_restrictedActionsMenuWindow[UIActionRestrictionLevel_Base] =      gEDataManager->restrictedRuntimeMenuWindowActionTypes(strMachineID);
+    m_restrictedActionsMenuWindow[UIActionRestrictionLevel_Base] =      gEDataManager->restrictedRuntimeMenuWindowActionTypes(aMachineID);
 #endif /* VBOX_WS_MAC */
-    m_restrictedActionsMenuHelp[UIActionRestrictionLevel_Base] =        gEDataManager->restrictedRuntimeMenuHelpActionTypes(strMachineID);
+    m_restrictedActionsMenuHelp[UIActionRestrictionLevel_Base] =        gEDataManager->restrictedRuntimeMenuHelpActionTypes(aMachineID);
 
     /* Recache visual state action restrictions: */
-    UIVisualStateType restrictedVisualStates = gEDataManager->restrictedVisualStates(strMachineID);
+    UIVisualStateType restrictedVisualStates = gEDataManager->restrictedVisualStates(aMachineID);
     {
         if (restrictedVisualStates & UIVisualStateType_Fullscreen)
@@ -3382,5 +3382,5 @@
 
     /* Recache reconfiguration action restrictions: */
-    bool fReconfigurationAllowed = gEDataManager->machineReconfigurationEnabled(strMachineID);
+    bool fReconfigurationAllowed = gEDataManager->machineReconfigurationEnabled(aMachineID);
     if (!fReconfigurationAllowed)
     {
@@ -3402,5 +3402,5 @@
 
     /* Recache snapshot related action restrictions: */
-    bool fSnapshotOperationsAllowed = gEDataManager->machineSnapshotOperationsEnabled(strMachineID);
+    bool fSnapshotOperationsAllowed = gEDataManager->machineSnapshotOperationsEnabled(aMachineID);
     if (!fSnapshotOperationsAllowed)
     {
@@ -3423,5 +3423,5 @@
 
     /* Recache close related action restrictions: */
-    MachineCloseAction restrictedCloseActions = gEDataManager->restrictedMachineCloseActions(strMachineID);
+    MachineCloseAction restrictedCloseActions = gEDataManager->restrictedMachineCloseActions(aMachineID);
     bool fAllCloseActionsRestricted =    (!vboxGlobal().isSeparateProcess() || (restrictedCloseActions & MachineCloseAction_Detach))
                                       && (restrictedCloseActions & MachineCloseAction_SaveState)
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.h	(revision 74878)
@@ -201,5 +201,5 @@
 
     /** Handles configuration-change. */
-    void sltHandleConfigurationChange(const QString &strMachineID);
+    void sltHandleConfigurationChange(const QUuid &aMachineID);
 
     /** Handles 'View' : 'Scale Factor' menu : @a pAction trigger. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp	(revision 74878)
@@ -376,5 +376,5 @@
 {
     /* Get machine ID: */
-    const QString strMachineId = comMachine.GetId();
+    const QUuid uMachineId = comMachine.GetId();
     AssertReturn(comMachine.isOk(), QPixmap());
 
@@ -384,5 +384,5 @@
     /* 1. First, load icon from IMachine extra-data: */
     if (icon.isNull())
-        foreach (const QString &strIconName, gEDataManager->machineWindowIconNames(strMachineId))
+        foreach (const QString &strIconName, gEDataManager->machineWindowIconNames(uMachineId))
             if (!strIconName.isEmpty() && QFile::exists(strIconName))
                 icon.addFile(strIconName);
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.h	(revision 74878)
@@ -76,19 +76,19 @@
       * @{ */
         /** Notifies about @a state change event for the machine with @a strId. */
-        void sigMachineStateChange(QString strId, KMachineState state);
+        void sigMachineStateChange(const QUuid &aId, const KMachineState state);
         /** Notifies about data change event for the machine with @a strId. */
-        void sigMachineDataChange(QString strId);
+        void sigMachineDataChange(const QUuid &aId);
         /** Notifies about machine with @a strId was @a fRegistered. */
-        void sigMachineRegistered(QString strId, bool fRegistered);
+        void sigMachineRegistered(const QUuid &aId, const bool fRegistered);
         /** Notifies about @a state change event for the session of the machine with @a strId. */
-        void sigSessionStateChange(QString strId, KSessionState state);
+        void sigSessionStateChange(const QUuid &aId, const KSessionState state);
         /** Notifies about snapshot with @a strSnapshotId was taken for the machine with @a strId. */
-        void sigSnapshotTake(QString strId, QString strSnapshotId);
+        void sigSnapshotTake(const QUuid &aId, const QUuid &aSnapshotId);
         /** Notifies about snapshot with @a strSnapshotId was deleted for the machine with @a strId. */
-        void sigSnapshotDelete(QString strId, QString strSnapshotId);
+        void sigSnapshotDelete(const QUuid &aId, const QUuid &aSnapshotId);
         /** Notifies about snapshot with @a strSnapshotId was changed for the machine with @a strId. */
-        void sigSnapshotChange(QString strId, QString strSnapshotId);
+        void sigSnapshotChange(const QUuid &aId, const QUuid &aSnapshotId);
         /** Notifies about snapshot with @a strSnapshotId was restored for the machine with @a strId. */
-        void sigSnapshotRestore(QString strId, QString strSnapshotId);
+        void sigSnapshotRestore(const QUuid &aId, const QUuid &aSnapshotId);
     /** @} */
 
@@ -96,7 +96,7 @@
       * @{ */
         /** Notifies about extra-data of the machine with @a strId can be changed for the key @a strKey to value @a strValue. */
-        void sigExtraDataCanChange(QString strId, QString strKey, QString strValue, bool &fVeto, QString &strVetoReason); /* use Qt::DirectConnection */
+        void sigExtraDataCanChange(const QUuid &aId, const QString &strKey, const QString &strValue, bool &fVeto, QString &strVetoReason); /* use Qt::DirectConnection */
         /** Notifies about extra-data of the machine with @a strId changed for the key @a strKey to value @a strValue. */
-        void sigExtraDataChange(QString strId, QString strKey, QString strValue);
+        void sigExtraDataChange(const QUuid &aId, const QString &strKey, const QString &strValue);
     /** @} */
 
@@ -149,7 +149,7 @@
       * @{ */
         /** Notifies about @a iPercent change for progress with @a strProgressId. */
-        void sigProgressPercentageChange(QString strProgressId, int iPercent);
+        void sigProgressPercentageChange(const QUuid &aProgressId, const int iPercent);
         /** Notifies about task complete for progress with @a strProgressId. */
-        void sigProgressTaskComplete(QString strProgressId);
+        void sigProgressTaskComplete(const QUuid &aProgressId);
     /** @} */
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 74878)
@@ -519,9 +519,9 @@
 }
 
-void UIMessageCenter::cannotFindMachineById(const CVirtualBox &vbox, const QString &strId) const
+void UIMessageCenter::cannotFindMachineById(const CVirtualBox &vbox, const QUuid &aId) const
 {
     error(0, MessageType_Error,
           tr("There is no virtual machine with the identifier <b>%1</b>.")
-             .arg(strId),
+             .arg(aId.toString()),
           UIErrorString::formatErrorInfo(vbox));
 }
@@ -672,5 +672,5 @@
                     /* Check if that hard disk isn't shared.
                      * If hard disk is shared, it will *never* be deleted: */
-                    QVector<QString> usedMachineList = attachment.GetMedium().GetMachineIds();
+                    QVector<QUuid> usedMachineList = attachment.GetMedium().GetMachineIds();
                     if (usedMachineList.size() == 1)
                     {
@@ -1018,10 +1018,10 @@
 
 void UIMessageCenter::cannotFindSnapshotById(const CMachine &comMachine,
-                                             const QString &strId,
+                                             const QUuid &aId,
                                              QWidget *pParent /* = 0 */) const
 {
     error(pParent, MessageType_Error,
           tr("Can't find snapshot with ID=<b>%1</b>.")
-             .arg(strId),
+             .arg(aId.toString()),
           UIErrorString::formatErrorInfo(comMachine));
 }
@@ -1276,7 +1276,7 @@
     QStringList usage;
     CVirtualBox vbox = vboxGlobal().virtualBox();
-    foreach (const QString &strMachineID, medium.curStateMachineIds())
+    foreach (const QUuid &uMachineID, medium.curStateMachineIds())
     {
-        CMachine machine = vbox.FindMachine(strMachineID);
+        CMachine machine = vbox.FindMachine(uMachineID.toString());
         if (!vbox.isOk() || machine.isNull())
             continue;
@@ -2797,6 +2797,6 @@
     if (!strAutoConfirmId.isEmpty())
     {
-        const QString strID = vboxGlobal().isVMConsoleProcess() ? vboxGlobal().managedVMUuid() : UIExtraDataManager::GlobalID;
-        confirmedMessageList = gEDataManager->suppressedMessages(strID);
+        const QUuid uID = vboxGlobal().isVMConsoleProcess() ? vboxGlobal().managedVMUuid() : UIExtraDataManager::GlobalID;
+        confirmedMessageList = gEDataManager->suppressedMessages(uID);
         if (   confirmedMessageList.contains(strAutoConfirmId)
             || confirmedMessageList.contains("allMessageBoxes")
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 74878)
@@ -251,5 +251,5 @@
     void cannotLoadLanguage(const QString &strLangFile) const;
     void cannotFindMachineByName(const CVirtualBox &vbox, const QString &strName) const;
-    void cannotFindMachineById(const CVirtualBox &vbox, const QString &strId) const;
+    void cannotFindMachineById(const CVirtualBox &vbox, const QUuid &aId) const;
     void cannotOpenSession(const CSession &session) const;
     void cannotOpenSession(const CMachine &machine) const;
@@ -301,5 +301,5 @@
     void cannotChangeSnapshot(const CSnapshot &comSnapshot, const QString &strSnapshotName, const QString &strMachineName) const;
     void cannotFindSnapshotByName(const CMachine &comMachine, const QString &strName, QWidget *pParent = 0) const;
-    void cannotFindSnapshotById(const CMachine &comMachine, const QString &strId, QWidget *pParent = 0) const;
+    void cannotFindSnapshotById(const CMachine &comMachine, const QUuid &aId, QWidget *pParent = 0) const;
     void cannotAcquireSnapshotAttributes(const CSnapshot &comSnapshot, QWidget *pParent = 0);
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIVirtualBoxEventHandler.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIVirtualBoxEventHandler.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIVirtualBoxEventHandler.cpp	(revision 74878)
@@ -47,19 +47,19 @@
 
     /** Notifies about @a state change event for the machine with @a strId. */
-    void sigMachineStateChange(QString strId, KMachineState state);
+    void sigMachineStateChange(const QUuid &aId, const KMachineState state);
     /** Notifies about data change event for the machine with @a strId. */
-    void sigMachineDataChange(QString strId);
+    void sigMachineDataChange(const QUuid &aId);
     /** Notifies about machine with @a strId was @a fRegistered. */
-    void sigMachineRegistered(QString strId, bool fRegistered);
+    void sigMachineRegistered(const QUuid &aId, const bool fRegistered);
     /** Notifies about @a state change event for the session of the machine with @a strId. */
-    void sigSessionStateChange(QString strId, KSessionState state);
+    void sigSessionStateChange(const QUuid &aId, const KSessionState state);
     /** Notifies about snapshot with @a strSnapshotId was taken for the machine with @a strId. */
-    void sigSnapshotTake(QString strId, QString strSnapshotId);
+    void sigSnapshotTake(const QUuid &aId, const QUuid &aSnapshotId);
     /** Notifies about snapshot with @a strSnapshotId was deleted for the machine with @a strId. */
-    void sigSnapshotDelete(QString strId, QString strSnapshotId);
+    void sigSnapshotDelete(const QUuid &aId, const QUuid &aSnapshotId);
     /** Notifies about snapshot with @a strSnapshotId was changed for the machine with @a strId. */
-    void sigSnapshotChange(QString strId, QString strSnapshotId);
+    void sigSnapshotChange(const QUuid &aId, const QUuid &aSnapshotId);
     /** Notifies about snapshot with @a strSnapshotId was restored for the machine with @a strId. */
-    void sigSnapshotRestore(QString strId, QString strSnapshotId);
+    void sigSnapshotRestore(const QUuid &aId, const QUuid &aSnapshotId);
 
 public:
@@ -185,27 +185,27 @@
             this, SIGNAL(sigVBoxSVCAvailabilityChange(bool)),
             Qt::DirectConnection);
-    connect(m_pQtListener->getWrapped(), SIGNAL(sigMachineStateChange(QString, KMachineState)),
-            this, SIGNAL(sigMachineStateChange(QString, KMachineState)),
-            Qt::DirectConnection);
-    connect(m_pQtListener->getWrapped(), SIGNAL(sigMachineDataChange(QString)),
-            this, SIGNAL(sigMachineDataChange(QString)),
-            Qt::DirectConnection);
-    connect(m_pQtListener->getWrapped(), SIGNAL(sigMachineRegistered(QString, bool)),
-            this, SIGNAL(sigMachineRegistered(QString, bool)),
-            Qt::DirectConnection);
-    connect(m_pQtListener->getWrapped(), SIGNAL(sigSessionStateChange(QString, KSessionState)),
-            this, SIGNAL(sigSessionStateChange(QString, KSessionState)),
-            Qt::DirectConnection);
-    connect(m_pQtListener->getWrapped(), SIGNAL(sigSnapshotTake(QString, QString)),
-            this, SIGNAL(sigSnapshotTake(QString, QString)),
-            Qt::DirectConnection);
-    connect(m_pQtListener->getWrapped(), SIGNAL(sigSnapshotDelete(QString, QString)),
-            this, SIGNAL(sigSnapshotDelete(QString, QString)),
-            Qt::DirectConnection);
-    connect(m_pQtListener->getWrapped(), SIGNAL(sigSnapshotChange(QString, QString)),
-            this, SIGNAL(sigSnapshotChange(QString, QString)),
-            Qt::DirectConnection);
-    connect(m_pQtListener->getWrapped(), SIGNAL(sigSnapshotRestore(QString, QString)),
-            this, SIGNAL(sigSnapshotRestore(QString, QString)),
+    connect(m_pQtListener->getWrapped(), SIGNAL(sigMachineStateChange(QUuid, KMachineState)),
+            this, SIGNAL(sigMachineStateChange(QUuid, KMachineState)),
+            Qt::DirectConnection);
+    connect(m_pQtListener->getWrapped(), SIGNAL(sigMachineDataChange(QUuid)),
+            this, SIGNAL(sigMachineDataChange(QUuid)),
+            Qt::DirectConnection);
+    connect(m_pQtListener->getWrapped(), SIGNAL(sigMachineRegistered(QUuid, bool)),
+            this, SIGNAL(sigMachineRegistered(QUuid, bool)),
+            Qt::DirectConnection);
+    connect(m_pQtListener->getWrapped(), SIGNAL(sigSessionStateChange(QUuid, KSessionState)),
+            this, SIGNAL(sigSessionStateChange(QUuid, KSessionState)),
+            Qt::DirectConnection);
+    connect(m_pQtListener->getWrapped(), SIGNAL(sigSnapshotTake(QUuid, QUuid)),
+            this, SIGNAL(sigSnapshotTake(QUuid, QUuid)),
+            Qt::DirectConnection);
+    connect(m_pQtListener->getWrapped(), SIGNAL(sigSnapshotDelete(QUuid, QUuid)),
+            this, SIGNAL(sigSnapshotDelete(QUuid, QUuid)),
+            Qt::DirectConnection);
+    connect(m_pQtListener->getWrapped(), SIGNAL(sigSnapshotChange(QUuid, QUuid)),
+            this, SIGNAL(sigSnapshotChange(QUuid, QUuid)),
+            Qt::DirectConnection);
+    connect(m_pQtListener->getWrapped(), SIGNAL(sigSnapshotRestore(QUuid, QUuid)),
+            this, SIGNAL(sigSnapshotRestore(QUuid, QUuid)),
             Qt::DirectConnection);
 }
@@ -282,27 +282,27 @@
             this, SIGNAL(sigVBoxSVCAvailabilityChange(bool)),
             Qt::QueuedConnection);
-    connect(m_pProxy, SIGNAL(sigMachineStateChange(QString, KMachineState)),
-            this, SIGNAL(sigMachineStateChange(QString, KMachineState)),
-            Qt::QueuedConnection);
-    connect(m_pProxy, SIGNAL(sigMachineDataChange(QString)),
-            this, SIGNAL(sigMachineDataChange(QString)),
-            Qt::QueuedConnection);
-    connect(m_pProxy, SIGNAL(sigMachineRegistered(QString, bool)),
-            this, SIGNAL(sigMachineRegistered(QString, bool)),
-            Qt::QueuedConnection);
-    connect(m_pProxy, SIGNAL(sigSessionStateChange(QString, KSessionState)),
-            this, SIGNAL(sigSessionStateChange(QString, KSessionState)),
-            Qt::QueuedConnection);
-    connect(m_pProxy, SIGNAL(sigSnapshotTake(QString, QString)),
-            this, SIGNAL(sigSnapshotTake(QString, QString)),
-            Qt::QueuedConnection);
-    connect(m_pProxy, SIGNAL(sigSnapshotDelete(QString, QString)),
-            this, SIGNAL(sigSnapshotDelete(QString, QString)),
-            Qt::QueuedConnection);
-    connect(m_pProxy, SIGNAL(sigSnapshotChange(QString, QString)),
-            this, SIGNAL(sigSnapshotChange(QString, QString)),
-            Qt::QueuedConnection);
-    connect(m_pProxy, SIGNAL(sigSnapshotRestore(QString, QString)),
-            this, SIGNAL(sigSnapshotRestore(QString, QString)),
+    connect(m_pProxy, SIGNAL(sigMachineStateChange(QUuid, KMachineState)),
+            this, SIGNAL(sigMachineStateChange(QUuid, KMachineState)),
+            Qt::QueuedConnection);
+    connect(m_pProxy, SIGNAL(sigMachineDataChange(QUuid)),
+            this, SIGNAL(sigMachineDataChange(QUuid)),
+            Qt::QueuedConnection);
+    connect(m_pProxy, SIGNAL(sigMachineRegistered(QUuid, bool)),
+            this, SIGNAL(sigMachineRegistered(QUuid, bool)),
+            Qt::QueuedConnection);
+    connect(m_pProxy, SIGNAL(sigSessionStateChange(QUuid, KSessionState)),
+            this, SIGNAL(sigSessionStateChange(QUuid, KSessionState)),
+            Qt::QueuedConnection);
+    connect(m_pProxy, SIGNAL(sigSnapshotTake(QUuid, QUuid)),
+            this, SIGNAL(sigSnapshotTake(QUuid, QUuid)),
+            Qt::QueuedConnection);
+    connect(m_pProxy, SIGNAL(sigSnapshotDelete(QUuid, QUuid)),
+            this, SIGNAL(sigSnapshotDelete(QUuid, QUuid)),
+            Qt::QueuedConnection);
+    connect(m_pProxy, SIGNAL(sigSnapshotChange(QUuid, QUuid)),
+            this, SIGNAL(sigSnapshotChange(QUuid, QUuid)),
+            Qt::QueuedConnection);
+    connect(m_pProxy, SIGNAL(sigSnapshotRestore(QUuid, QUuid)),
+            this, SIGNAL(sigSnapshotRestore(QUuid, QUuid)),
             Qt::QueuedConnection);
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIVirtualBoxEventHandler.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIVirtualBoxEventHandler.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIVirtualBoxEventHandler.h	(revision 74878)
@@ -43,19 +43,19 @@
 
     /** Notifies about @a state change event for the machine with @a strId. */
-    void sigMachineStateChange(QString strId, KMachineState state);
+    void sigMachineStateChange(const QUuid &aId, const KMachineState state);
     /** Notifies about data change event for the machine with @a strId. */
-    void sigMachineDataChange(QString strId);
+    void sigMachineDataChange(const QUuid &aId);
     /** Notifies about machine with @a strId was @a fRegistered. */
-    void sigMachineRegistered(QString strId, bool fRegistered);
+    void sigMachineRegistered(const QUuid &aId, const bool fRegistered);
     /** Notifies about @a state change event for the session of the machine with @a strId. */
-    void sigSessionStateChange(QString strId, KSessionState state);
+    void sigSessionStateChange(const QUuid &aId, const KSessionState state);
     /** Notifies about snapshot with @a strSnapshotId was taken for the machine with @a strId. */
-    void sigSnapshotTake(QString strId, QString strSnapshotId);
+    void sigSnapshotTake(const QUuid &sId, const QUuid &aSnapshotId);
     /** Notifies about snapshot with @a strSnapshotId was deleted for the machine with @a strId. */
-    void sigSnapshotDelete(QString strId, QString strSnapshotId);
+    void sigSnapshotDelete(const QUuid &aId, const QUuid &aSnapshotId);
     /** Notifies about snapshot with @a strSnapshotId was changed for the machine with @a strId. */
-    void sigSnapshotChange(QString strId, QString strSnapshotId);
+    void sigSnapshotChange(const QUuid &aId, const QUuid &aSnapshotId);
     /** Notifies about snapshot with @a strSnapshotId was restored for the machine with @a strId. */
-    void sigSnapshotRestore(QString strId, QString strSnapshotId);
+    void sigSnapshotRestore(const QUuid &aId, const QUuid &aSnapshotId);
 
 public:
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 74878)
@@ -2362,5 +2362,5 @@
 }
 
-CSession VBoxGlobal::openSession(const QString &strId, KLockType lockType /* = KLockType_Shared */)
+CSession VBoxGlobal::openSession(const QUuid &aId, KLockType lockType /* = KLockType_Shared */)
 {
     /* Prepare session: */
@@ -2380,8 +2380,8 @@
 
         /* Search for the corresponding machine: */
-        CMachine comMachine = m_comVBox.FindMachine(strId);
+        CMachine comMachine = m_comVBox.FindMachine(aId.toString());
         if (comMachine.isNull())
         {
-            msgCenter().cannotFindMachineById(m_comVBox, strId);
+            msgCenter().cannotFindMachineById(m_comVBox, aId);
             break;
         }
@@ -2486,5 +2486,5 @@
 }
 
-UIMedium VBoxGlobal::medium(const QString &strMediumID) const
+UIMedium VBoxGlobal::medium(const QUuid &aMediumID) const
 {
     if (m_meCleanupProtectionToken.tryLockForRead())
@@ -2493,5 +2493,5 @@
         UIMedium guiMedium;
         if (m_pMediumEnumerator)
-            guiMedium = m_pMediumEnumerator->medium(strMediumID);
+            guiMedium = m_pMediumEnumerator->medium(aMediumID);
         m_meCleanupProtectionToken.unlock();
         return guiMedium;
@@ -2500,10 +2500,10 @@
 }
 
-QList<QString> VBoxGlobal::mediumIDs() const
+QList<QUuid> VBoxGlobal::mediumIDs() const
 {
     if (m_meCleanupProtectionToken.tryLockForRead())
     {
         /* Redirect call to medium-enumerator: */
-        QList<QString> listOfMedia;
+        QList<QUuid> listOfMedia;
         if (m_pMediumEnumerator)
             listOfMedia = m_pMediumEnumerator->mediumIDs();
@@ -2511,5 +2511,5 @@
         return listOfMedia;
     }
-    return QList<QString>();
+    return QList<QUuid>();
 }
 
@@ -2525,5 +2525,5 @@
 }
 
-void VBoxGlobal::deleteMedium(const QString &strMediumID)
+void VBoxGlobal::deleteMedium(const QUuid &aMediumID)
 {
     if (m_meCleanupProtectionToken.tryLockForRead())
@@ -2531,10 +2531,10 @@
         /* Delete medium from medium-enumerator: */
         if (m_pMediumEnumerator)
-            m_pMediumEnumerator->deleteMedium(strMediumID);
+            m_pMediumEnumerator->deleteMedium(aMediumID);
         m_meCleanupProtectionToken.unlock();
     }
 }
 
-QString VBoxGlobal::openMedium(UIMediumDeviceType enmMediumType, QString strMediumLocation, QWidget *pParent /* = 0 */)
+QUuid VBoxGlobal::openMedium(UIMediumDeviceType enmMediumType, QString strMediumLocation, QWidget *pParent /* = 0 */)
 {
     /* Convert to native separators: */
@@ -2568,8 +2568,8 @@
         msgCenter().cannotOpenMedium(comVBox, enmMediumType, strMediumLocation, pParent);
 
-    return QString();
-}
-
-QString VBoxGlobal::openMediumWithFileOpenDialog(UIMediumDeviceType enmMediumType, QWidget *pParent,
+    return QUuid();
+}
+
+QUuid VBoxGlobal::openMediumWithFileOpenDialog(UIMediumDeviceType enmMediumType, QWidget *pParent,
                                                  const QString &strDefaultFolder /* = QString() */,
                                                  bool fUseLastFolder /* = false */)
@@ -2649,8 +2649,8 @@
         return openMedium(enmMediumType, files[0], pParent);
 
-    return QString();
-}
-
-QString VBoxGlobal::createVisoMediumWithFileOpenDialog(QWidget *pParent, const QString &strFolder)
+    return QUuid();
+}
+
+QUuid VBoxGlobal::createVisoMediumWithFileOpenDialog(QWidget *pParent, const QString &strFolder)
 {
     AssertReturn(!strFolder.isEmpty(), QString());
@@ -2672,5 +2672,5 @@
     /* Return if no result. */
     if (files.empty() || files[0].isEmpty())
-        return QString();
+        return QUuid();
 
     /* Remember folder for the next time. */
@@ -2721,8 +2721,8 @@
 
     /** @todo error message. */
-    return QString();
-}
-
-QString VBoxGlobal::showCreateFloppyDiskDialog(QWidget *pParent, const QString &strMachineName, const QString &strMachineFolder)
+    return QUuid();
+}
+
+QUuid VBoxGlobal::showCreateFloppyDiskDialog(QWidget *pParent, const QString &strMachineName, const QString &strMachineFolder)
 {
     UIFDCreationDialog *pDialog = new UIFDCreationDialog(pParent, strMachineName, strMachineFolder);
@@ -2732,5 +2732,5 @@
     }
     delete pDialog;
-    return QString();
+    return QUuid();
 }
 
@@ -2744,5 +2744,5 @@
                                                                                   storageSlot.device);
     const CMedium comCurrentMedium = comCurrentAttachment.GetMedium();
-    const QString strCurrentID = comCurrentMedium.isNull() ? QString() : comCurrentMedium.GetId();
+    const QUuid uCurrentID = comCurrentMedium.isNull() ? QUuid() : comCurrentMedium.GetId();
     const QString strCurrentLocation = comCurrentMedium.isNull() ? QString() : comCurrentMedium.GetLocation();
 
@@ -2818,5 +2818,5 @@
             QAction *pActionChooseHostDrive = menu.addAction(UIMedium(comMedium, enmMediumType).name(), pListener, pszSlotName);
             pActionChooseHostDrive->setCheckable(true);
-            pActionChooseHostDrive->setChecked(!comCurrentMedium.isNull() && comMedium.GetId() == strCurrentID);
+            pActionChooseHostDrive->setChecked(!comCurrentMedium.isNull() && comMedium.GetId() == uCurrentID);
             pActionChooseHostDrive->setData(QVariant::fromValue(UIMediumTarget(strControllerName,
                                                                                comCurrentAttachment.GetPort(),
@@ -2824,5 +2824,5 @@
                                                                                enmMediumType,
                                                                                UIMediumTarget::UIMediumTargetType_WithID,
-                                                                               comMedium.GetId())));
+                                                                               comMedium.GetId().toString())));
         }
     }
@@ -2908,5 +2908,5 @@
     CMedium comMedium;
     /* With null ID (by default): */
-    QString strActualID;
+    QUuid uActualID;
 
     /* Current mount-target attributes: */
@@ -2915,5 +2915,5 @@
     const CMediumAttachment comCurrentAttachment = comConstMachine.GetMediumAttachment(target.name, target.port, target.device);
     const CMedium comCurrentMedium = comCurrentAttachment.GetMedium();
-    const QString strCurrentID = comCurrentMedium.isNull() ? QString() : comCurrentMedium.GetId();
+    const QUuid uCurrentID = comCurrentMedium.isNull() ? QUuid() : comCurrentMedium.GetId();
     const QString strCurrentLocation = comCurrentMedium.isNull() ? QString() : comCurrentMedium.GetLocation();
 
@@ -2927,5 +2927,5 @@
         {
             /* New mount-target attributes: */
-            QString strNewID;
+            QUuid uNewID;
 
             /* Invoke file-open dialog to choose medium ID: */
@@ -2943,11 +2943,11 @@
                 /* Call for file-open dialog: */
                 const QString strMachineFolder(QFileInfo(comConstMachine.GetSettingsFilePath()).absolutePath());
-                QString strMediumID;
+                QUuid uMediumID;
                 if (target.type == UIMediumTarget::UIMediumTargetType_WithID)
-                    strMediumID = openMediumWithFileOpenDialog(target.mediumType, windowManager().mainWindowShown(), strMachineFolder);
+                    uMediumID = openMediumWithFileOpenDialog(target.mediumType, windowManager().mainWindowShown(), strMachineFolder);
                 else if(target.type == UIMediumTarget::UIMediumTargetType_CreateAdHocVISO)
-                    strMediumID = createVisoMediumWithFileOpenDialog(windowManager().mainWindowShown(), strMachineFolder);
+                    uMediumID = createVisoMediumWithFileOpenDialog(windowManager().mainWindowShown(), strMachineFolder);
                 else if(target.type == UIMediumTarget::UIMediumTargetType_CreateFloppyDisk)
-                    strMediumID = showCreateFloppyDiskDialog(windowManager().mainWindowShown(), comConstMachine.GetName(), strMachineFolder);
+                    uMediumID = showCreateFloppyDiskDialog(windowManager().mainWindowShown(), comConstMachine.GetName(), strMachineFolder);
 
                 /* Return focus back: */
@@ -2955,20 +2955,20 @@
                     pLastFocusedWidget->setFocus();
                 /* Accept new medium ID: */
-                if (!strMediumID.isNull())
-                    strNewID = strMediumID;
+                if (!uMediumID.isNull())
+                    uNewID = uMediumID;
                 /* Else just exit: */
                 else return;
             }
             /* Use medium ID which was passed: */
-            else if (!target.data.isNull() && target.data != strCurrentID)
-                strNewID = target.data;
+            else if (!target.data.isNull() && target.data != uCurrentID.toString())
+                uNewID = target.data;
 
             /* Should we mount or unmount? */
-            fMount = !strNewID.isEmpty();
+            fMount = !uNewID.isNull();
 
             /* Prepare target medium: */
-            const UIMedium guiMedium = medium(strNewID);
+            const UIMedium guiMedium = medium(uNewID);
             comMedium = guiMedium.medium();
-            strActualID = fMount ? strNewID : strCurrentID;
+            uActualID = fMount ? uNewID : uCurrentID;
             break;
         }
@@ -2977,16 +2977,16 @@
         {
             /* Open medium by location and get new medium ID if any: */
-            const QString strNewID = openMedium(target.mediumType, target.data);
+            const QUuid uNewID = openMedium(target.mediumType, target.data);
             /* Else just exit: */
-            if (strNewID.isEmpty())
+            if (uNewID.isNull())
                 return;
 
             /* Should we mount or unmount? */
-            fMount = strNewID != strCurrentID;
+            fMount = uNewID != uCurrentID;
 
             /* Prepare target medium: */
-            const UIMedium guiMedium = fMount ? medium(strNewID) : UIMedium();
+            const UIMedium guiMedium = fMount ? medium(uNewID) : UIMedium();
             comMedium = fMount ? guiMedium.medium() : CMedium();
-            strActualID = fMount ? strNewID : strCurrentID;
+            uActualID = fMount ? uNewID : uCurrentID;
             break;
         }
@@ -3050,5 +3050,5 @@
         {
             /* Ask for force remounting: */
-            if (msgCenter().cannotRemountMedium(comMachine, medium(strActualID),
+            if (msgCenter().cannotRemountMedium(comMachine, medium(uActualID),
                                                 fMount, true /* retry? */))
             {
@@ -3057,5 +3057,5 @@
                 fWasMounted = comMachine.isOk();
                 if (!fWasMounted)
-                    msgCenter().cannotRemountMedium(comMachine, medium(strActualID),
+                    msgCenter().cannotRemountMedium(comMachine, medium(uActualID),
                                                     fMount, false /* retry? */);
             }
@@ -3086,6 +3086,6 @@
 {
     /* Search for corresponding UI medium: */
-    const QString strMediumID = comMedium.isNull() ? UIMedium::nullID() : comMedium.GetId();
-    UIMedium guiMedium = medium(strMediumID);
+    const QUuid uMediumID = comMedium.isNull() ? UIMedium::nullID() : comMedium.GetId();
+    UIMedium guiMedium = medium(uMediumID);
     if (!comMedium.isNull() && guiMedium.isNull())
     {
@@ -3094,5 +3094,5 @@
 
         /* Search for corresponding UI medium again: */
-        guiMedium = medium(strMediumID);
+        guiMedium = medium(uMediumID);
         if (guiMedium.isNull())
         {
@@ -4149,5 +4149,5 @@
         m_comVBox.SetSettingsSecret(m_astrSettingsPw);
 
-    if (visualStateType != UIVisualStateType_Invalid && !m_strManagedVMId.isEmpty())
+    if (visualStateType != UIVisualStateType_Invalid && !m_strManagedVMId.isNull())
         gEDataManager->setRequestedVisualState(visualStateType, m_strManagedVMId);
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 74878)
@@ -91,12 +91,12 @@
      * @{ */
         /** Notifies listeners about medium with certain @a strMediumID created. */
-        void sigMediumCreated(const QString &strMediumID);
+        void sigMediumCreated(const QUuid &aMediumID);
         /** Notifies listeners about medium with certain @a strMediumID deleted. */
-        void sigMediumDeleted(const QString &strMediumID);
+        void sigMediumDeleted(const QUuid &aMediumID);
 
         /** Notifies listeners about medium enumeration started. */
         void sigMediumEnumerationStarted();
         /** Notifies listeners about medium with certain @a strMediumID enumerated. */
-        void sigMediumEnumerated(const QString &strMediumID);
+        void sigMediumEnumerated(const QUuid &aMediumID);
         /** Notifies listeners about medium enumeration finished. */
         void sigMediumEnumerationFinished();
@@ -211,5 +211,5 @@
 
         /** Returns the --startvm option value (managed VM id). */
-        QString managedVMUuid() const { return m_strManagedVMId; }
+        QUuid managedVMUuid() const { return m_strManagedVMId; }
         /** Returns whether this is VM console process. */
         bool isVMConsoleProcess() const { return !m_strManagedVMId.isNull(); }
@@ -228,11 +228,11 @@
 
         /** Returns the --fda option value (whether we have floppy image). */
-        bool hasFloppyImageToMount() const { return !m_strFloppyImage.isEmpty(); }
+        bool hasFloppyImageToMount() const { return !m_strFloppyImage.isNull(); }
         /** Returns the --dvd | --cdrom option value (whether we have DVD image). */
-        bool hasDvdImageToMount() const { return !m_strDvdImage.isEmpty(); }
+        bool hasDvdImageToMount() const { return !m_strDvdImage.isNull(); }
         /** Returns floppy image name. */
-        QString const &getFloppyImage() const { return m_strFloppyImage; }
+        QUuid const &getFloppyImage() const { return m_strFloppyImage; }
         /** Returns DVD image name. */
-        QString const &getDvdImage() const { return m_strDvdImage; }
+        QUuid const &getDvdImage() const { return m_strDvdImage; }
 
         /** Returns the --disable-patm option value. */
@@ -474,7 +474,7 @@
 
         /** Opens session of certain @a enmLockType for VM with certain @a strId. */
-        CSession openSession(const QString &strId, KLockType enmLockType = KLockType_Write);
+        CSession openSession(const QUuid &aId, KLockType enmLockType = KLockType_Write);
         /** Opens session of KLockType_Shared type for VM with certain @a strId. */
-        CSession openExistingSession(const QString &strId) { return openSession(strId, KLockType_Shared); }
+        CSession openExistingSession(const QUuid &aId) { return openSession(aId, KLockType_Shared); }
     /** @} */
 
@@ -488,11 +488,11 @@
         bool isMediumEnumerationInProgress() const;
         /** Returns enumerated medium with certain @a strMediumID. */
-        UIMedium medium(const QString &strMediumID) const;
+        UIMedium medium(const QUuid &aMediumID) const;
         /** Returns enumerated medium IDs. */
-        QList<QString> mediumIDs() const;
+        QList<QUuid> mediumIDs() const;
         /** Creates medium on the basis of passed @a guiMedium description. */
         void createMedium(const UIMedium &guiMedium);
         /** Deletes medium with certain @a strMediumID. */
-        void deleteMedium(const QString &strMediumID);
+        void deleteMedium(const QUuid &aMediumID);
 
         /** Opens external medium by passed @a strMediumLocation.
@@ -501,5 +501,5 @@
           * @param  strMediumLocation  Brings the file path to load medium from.
           * @param  pParent            Brings the dialog parent. */
-        QString openMedium(UIMediumDeviceType enmMediumType, QString strMediumLocation, QWidget *pParent = 0);
+        QUuid openMedium(UIMediumDeviceType enmMediumType, QString strMediumLocation, QWidget *pParent = 0);
 
         /** Opens external medium using file-open dialog.
@@ -508,5 +508,5 @@
           * @param  strDefaultFolder  Brings the folder to browse for medium.
           * @param  fUseLastFolder    Brings whether we should propose to use last used folder. */
-        QString openMediumWithFileOpenDialog(UIMediumDeviceType enmMediumType, QWidget *pParent = 0,
+        QUuid openMediumWithFileOpenDialog(UIMediumDeviceType enmMediumType, QWidget *pParent = 0,
                                              const QString &strDefaultFolder = QString(), bool fUseLastFolder = true);
 
@@ -514,5 +514,5 @@
           * @param  pParent    Brings the dialog parent.
           * @param  strFolder  Brings the folder to browse for VISO file contents. */
-        QString createVisoMediumWithFileOpenDialog(QWidget *pParent, const QString &strFolder);
+        QUuid createVisoMediumWithFileOpenDialog(QWidget *pParent, const QString &strFolder);
 
         /** Creates and shows a dialog thru which user can create a new floppy disk a VISO using the file-open dialog.
@@ -521,5 +521,5 @@
           * @param  strMachineFolder  Passes the machine folder,
           * returns the ID of the newly created medium if successful, an empty string otherwise.*/
-        QString showCreateFloppyDiskDialog(QWidget *pParent, const QString &strMachineName, const QString &strMachineFolder);
+        QUuid showCreateFloppyDiskDialog(QWidget *pParent, const QString &strMachineName, const QString &strMachineFolder);
 
         /** Prepares storage menu according passed parameters.
@@ -763,5 +763,5 @@
 
         /** Holds the --startvm option value (managed VM id). */
-        QString  m_strManagedVMId;
+        QUuid  m_strManagedVMId;
         /** Holds the --separate option value (whether GUI process is separate from VM process). */
         bool     m_fSeparateProcess;
@@ -776,7 +776,7 @@
 
         /** Holds the --fda option value (floppy image). */
-        QString  m_strFloppyImage;
+        QUuid  m_strFloppyImage;
         /** Holds the --dvd | --cdrom option value (DVD image). */
-        QString  m_strDvdImage;
+        QUuid  m_strDvdImage;
 
         /** Holds the --disable-patm option value. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/hostnetwork/UIHostNetworkManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/hostnetwork/UIHostNetworkManager.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/hostnetwork/UIHostNetworkManager.cpp	(revision 74878)
@@ -461,7 +461,7 @@
             strNetworkName = comInterface.GetNetworkName();
         /* Get interface id for further activities: */
-        QString strInterfaceId;
+        QUuid uInterfaceId;
         if (comInterface.isOk())
-            strInterfaceId = comInterface.GetId();
+            uInterfaceId = comInterface.GetId();
 
         /* Show error message if necessary: */
@@ -486,5 +486,5 @@
 
             /* Remove interface finally: */
-            CProgress progress = comHost.RemoveHostOnlyNetworkInterface(strInterfaceId);
+            CProgress progress = comHost.RemoveHostOnlyNetworkInterface(uInterfaceId);
 
             /* Show error message if necessary: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.h	(revision 74878)
@@ -52,5 +52,5 @@
     void sigToggleFinished();
     /** Redirects signal from UIDetails to UIVirtualBoxManager. */
-    void sigLinkClicked(const QString &strCategory, const QString &strControl, const QString &strId);
+    void sigLinkClicked(const QString &strCategory, const QString &strControl, const QUuid &aId);
 
 public:
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 74878)
@@ -295,7 +295,7 @@
     /* Look for at least one inaccessible medium: */
     bool fIsThereAnyInaccessibleMedium = false;
-    foreach (const QString &strMediumID, vboxGlobal().mediumIDs())
-    {
-        if (vboxGlobal().medium(strMediumID).state() == KMediumState_Inaccessible)
+    foreach (const QUuid &uMediumID, vboxGlobal().mediumIDs())
+    {
+        if (vboxGlobal().medium(uMediumID).state() == KMediumState_Inaccessible)
         {
             fIsThereAnyInaccessibleMedium = true;
@@ -383,5 +383,5 @@
 }
 
-void UIVirtualBoxManager::sltHandleStateChange(const QString &)
+void UIVirtualBoxManager::sltHandleStateChange(const QUuid &)
 {
     updateActionsAppearance();
@@ -598,5 +598,5 @@
 
     /* Make sure this machine was NOT registered already: */
-    CMachine comMachineOld = comVBox.FindMachine(comMachineNew.GetId());
+    CMachine comMachineOld = comVBox.FindMachine(comMachineNew.GetId().toString());
     if (!comMachineOld.isNull())
     {
@@ -611,5 +611,5 @@
 void UIVirtualBoxManager::sltOpenMachineSettingsDialog(QString strCategory /* = QString() */,
                                                        QString strControl /* = QString() */,
-                                                       const QString &strID /* = QString() */)
+                                                       const QUuid &aID /* = QString() */)
 {
     /* Get current item: */
@@ -644,5 +644,5 @@
         /* Create and execute corresponding VM settings window: */
         QPointer<UISettingsDialogMachine> pDlg = new UISettingsDialogMachine(this,
-                                                                             QUuid(strID).isNull() ? pItem->id() : strID,
+                                                                             aID.isNull() ? pItem->id() : aID,
                                                                              strCategory, strControl);
         pDlg->execute();
@@ -1066,5 +1066,5 @@
         QIManagerDialog *pLogViewerDialog = 0;
         /* Create and Show VM Log Viewer: */
-        if (!m_logViewers[pItem->machine().GetHardwareUUID()])
+        if (!m_logViewers[pItem->machine().GetHardwareUUID().toString()])
         {
             UIVMLogViewerDialogFactory dialogFactory(actionPool(), pItem->machine());
@@ -1072,5 +1072,5 @@
             if (pLogViewerDialog)
             {
-                m_logViewers[pItem->machine().GetHardwareUUID()] = pLogViewerDialog;
+                m_logViewers[pItem->machine().GetHardwareUUID().toString()] = pLogViewerDialog;
                 connect(pLogViewerDialog, &QIManagerDialog::sigClose,
                         this, &UIVirtualBoxManager::sltCloseLogViewerWindow);
@@ -1079,5 +1079,5 @@
         else
         {
-            pLogViewerDialog = m_logViewers[pItem->machine().GetHardwareUUID()];
+            pLogViewerDialog = m_logViewers[pItem->machine().GetHardwareUUID().toString()];
         }
         if (pLogViewerDialog)
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h	(revision 74878)
@@ -120,5 +120,5 @@
       * @{ */
         /** Handles CVirtualBox event about state change for machine with @a strID. */
-        void sltHandleStateChange(const QString &strID);
+        void sltHandleStateChange(const QUuid &aID);
     /** @} */
 
@@ -177,5 +177,5 @@
         void sltOpenMachineSettingsDialog(QString strCategory = QString(),
                                           QString strControl = QString(),
-                                          const QString &strID = QString());
+                                          const QUuid &aID = QUuid());
         /** Handles call to open Machine Settings dialog the default way. */
         void sltOpenMachineSettingsDialogDefault() { sltOpenMachineSettingsDialog(); }
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.h	(revision 74878)
@@ -52,5 +52,5 @@
 
     /** Notifies aboud Details-pane link clicked. */
-    void sigMachineSettingsLinkClicked(const QString &strCategory, const QString &strControl, const QString &strId);
+    void sigMachineSettingsLinkClicked(const QString &strCategory, const QString &strControl, const QUuid &aId);
 
     /** Notifies about Tool type change. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.cpp	(revision 74878)
@@ -120,5 +120,5 @@
     bool needsResort = true;
 
-    m_strId = m_machine.GetId();
+    m_uId = m_machine.GetId();
     m_strSettingsFile = m_machine.GetSettingsFilePath();
 
@@ -158,9 +158,9 @@
         /* Also take restrictions into account: */
         if (   m_configurationAccessLevel != ConfigurationAccessLevel_Null
-            && !gEDataManager->machineReconfigurationEnabled(m_strId))
+            && !gEDataManager->machineReconfigurationEnabled(m_uId))
             m_configurationAccessLevel = ConfigurationAccessLevel_Null;
 
         /* Should we show details for this item? */
-        m_fHasDetails = gEDataManager->showMachineInSelectorDetails(m_strId);
+        m_fHasDetails = gEDataManager->showMachineInSelectorDetails(m_uId);
     }
     else
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.h	(revision 74878)
@@ -47,5 +47,5 @@
     QPixmap osPixmap(QSize *pLogicalSize = 0) const;
     QString osTypeId() const { return m_strOSTypeId; }
-    QString id() const { return m_strId; }
+    QUuid id() const { return m_uId; }
 
     QString machineStateName() const;
@@ -93,5 +93,5 @@
 
     /* Cached machine data (to minimize server requests) */
-    QString m_strId;
+    QUuid   m_uId;
     QString m_strSettingsFile;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.h	(revision 74878)
@@ -23,4 +23,5 @@
 #include <QRectF>
 #include <QString>
+#include <QUuid>
 
 /* GUI includes: */
@@ -174,7 +175,7 @@
 
         /** Updates all children items with specified @a strId. */
-        virtual void updateAllItems(const QString &strId) = 0;
+        virtual void updateAllItems(const QUuid &aId) = 0;
         /** Removes all children items with specified @a strId. */
-        virtual void removeAllItems(const QString &strId) = 0;
+        virtual void removeAllItems(const QUuid &aId) = 0;
 
         /** Searches for a first child item answering to specified @a strSearchTag and @a iItemSearchFlags. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.cpp	(revision 74878)
@@ -276,5 +276,5 @@
 }
 
-void UIChooserItemGlobal::updateAllItems(const QString &)
+void UIChooserItemGlobal::updateAllItems(const QUuid &)
 {
     /* Update this global-item: */
@@ -287,5 +287,5 @@
 }
 
-void UIChooserItemGlobal::removeAllItems(const QString &)
+void UIChooserItemGlobal::removeAllItems(const QUuid &)
 {
     // Just do nothing ..
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.h	(revision 74878)
@@ -116,7 +116,7 @@
 
         /** Updates all children items with specified @a strId. */
-        virtual void updateAllItems(const QString &strId) /* override */;
+        virtual void updateAllItems(const QUuid &aId) /* override */;
         /** Removes all children items with specified @a strId. */
-        virtual void removeAllItems(const QString &strId) /* override */;
+        virtual void removeAllItems(const QUuid &aId) /* override */;
 
         /** Searches for a first child item answering to specified @a strSearchTag and @a iItemSearchFlags. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp	(revision 74878)
@@ -657,16 +657,16 @@
 }
 
-void UIChooserItemGroup::updateAllItems(const QString &strId)
+void UIChooserItemGroup::updateAllItems(const QUuid &aId)
 {
     /* Update all the required items recursively: */
     foreach (UIChooserItem *pItem, items())
-        pItem->updateAllItems(strId);
-}
-
-void UIChooserItemGroup::removeAllItems(const QString &strId)
+        pItem->updateAllItems(aId);
+}
+
+void UIChooserItemGroup::removeAllItems(const QUuid &aId)
 {
     /* Remove all the required items recursively: */
     foreach (UIChooserItem *pItem, items())
-        pItem->removeAllItems(strId);
+        pItem->removeAllItems(aId);
 }
 
@@ -1319,9 +1319,9 @@
 }
 
-bool UIChooserItemGroup::isContainsMachine(const QString &strId) const
+bool UIChooserItemGroup::isContainsMachine(const QUuid &aId) const
 {
     /* Check each machine-item: */
     foreach (UIChooserItem *pItem, m_machineItems)
-        if (pItem->toMachineItem()->id() == strId)
+        if (pItem->toMachineItem()->id() == aId)
             return true;
     /* Found nothing? */
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.h	(revision 74878)
@@ -162,7 +162,7 @@
 
         /** Updates all children items with specified @a strId. */
-        virtual void updateAllItems(const QString &strId) /* override */;
+        virtual void updateAllItems(const QUuid &aId) /* override */;
         /** Removes all children items with specified @a strId. */
-        virtual void removeAllItems(const QString &strId) /* override */;
+        virtual void removeAllItems(const QUuid &aId) /* override */;
 
         /** Searches for a first child item answering to specified @a strSearchTag and @a iItemSearchFlags. */
@@ -281,5 +281,5 @@
       * @{ */
         /** Returns whether group contains machine with @a strId. */
-        bool isContainsMachine(const QString &strId) const;
+        bool isContainsMachine(const QUuid &aId) const;
         /** Returns whether group contains locked machine. */
         bool isContainsLockedMachine();
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp	(revision 74878)
@@ -346,8 +346,8 @@
 }
 
-void UIChooserItemMachine::updateAllItems(const QString &strId)
+void UIChooserItemMachine::updateAllItems(const QUuid &aId)
 {
     /* Skip other ids: */
-    if (id() != strId)
+    if (id() != QUuid(aId))
         return;
 
@@ -365,8 +365,8 @@
 }
 
-void UIChooserItemMachine::removeAllItems(const QString &strId)
+void UIChooserItemMachine::removeAllItems(const QUuid &aId)
 {
     /* Skip wrong id: */
-    if (id() != strId)
+    if (id() != QUuid(aId))
         return;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.h	(revision 74878)
@@ -19,4 +19,7 @@
 #define ___UIChooserItemMachine_h___
 
+/* Qt includes */
+#include <QUuid>
+
 /* GUI includes: */
 #include "UIVirtualMachineItem.h"
@@ -129,7 +132,7 @@
 
         /** Updates all children items with specified @a strId. */
-        virtual void updateAllItems(const QString &strId) /* override */;
+        virtual void updateAllItems(const QUuid &aId) /* override */;
         /** Removes all children items with specified @a strId. */
-        virtual void removeAllItems(const QString &strId) /* override */;
+        virtual void removeAllItems(const QUuid &aId) /* override */;
 
         /** Searches for a first child item answering to specified @a strSearchTag and @a iItemSearchFlags. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp	(revision 74878)
@@ -749,17 +749,17 @@
 }
 
-void UIChooserModel::sltMachineStateChanged(QString strId, KMachineState)
+void UIChooserModel::sltMachineStateChanged(const QUuid &aId, const KMachineState)
 {
     /* Update machine-items with passed id: */
-    mainRoot()->updateAllItems(strId);
-}
-
-void UIChooserModel::sltMachineDataChanged(QString strId)
+    mainRoot()->updateAllItems(aId);
+}
+
+void UIChooserModel::sltMachineDataChanged(const QUuid &aId)
 {
     /* Update machine-items with passed id: */
-    mainRoot()->updateAllItems(strId);
-}
-
-void UIChooserModel::sltMachineRegistered(QString strId, bool fRegistered)
+    mainRoot()->updateAllItems(aId);
+}
+
+void UIChooserModel::sltMachineRegistered(const QUuid &aId, const bool fRegistered)
 {
     /* New VM registered? */
@@ -767,7 +767,7 @@
     {
         /* Search for corresponding machine: */
-        CMachine comMachine = vboxGlobal().virtualBox().FindMachine(strId);
+        CMachine comMachine = vboxGlobal().virtualBox().FindMachine(aId.toString());
         /* Should we show this machine? */
-        if (gEDataManager->showMachineInSelectorChooser(strId))
+        if (gEDataManager->showMachineInSelectorChooser(aId))
         {
             /* Add new machine-item: */
@@ -777,5 +777,5 @@
             updateLayout();
             /* Change current-item only if VM was created from the GUI side: */
-            if (strId == m_strLastCreatedMachineId)
+            if (aId == m_uLastCreatedMachineId)
             {
                 setCurrentItem(mainRoot()->searchForItem(comMachine.GetName(),
@@ -789,5 +789,5 @@
     {
         /* Remove machine-items with passed id: */
-        mainRoot()->removeAllItems(strId);
+        mainRoot()->removeAllItems(aId.toString());
         /* Update model: */
         cleanupGroupTree();
@@ -805,14 +805,14 @@
 }
 
-void UIChooserModel::sltSessionStateChanged(QString strId, KSessionState)
+void UIChooserModel::sltSessionStateChanged(const QUuid &aId, const KSessionState)
 {
     /* Update machine-items with passed id: */
-    mainRoot()->updateAllItems(strId);
-}
-
-void UIChooserModel::sltSnapshotChanged(QString strId, QString)
+    mainRoot()->updateAllItems(aId);
+}
+
+void UIChooserModel::sltSnapshotChanged(const QUuid &aId, const QUuid &)
 {
     /* Update machine-items with passed id: */
-    mainRoot()->updateAllItems(strId);
+    mainRoot()->updateAllItems(aId);
 }
 
@@ -1001,5 +1001,5 @@
      * on success for current-item handling: */
     if (pWizard->exec() == QDialog::Accepted)
-        m_strLastCreatedMachineId = pWizard->createdMachineId();
+        m_uLastCreatedMachineId = pWizard->createdMachineId();
 
     if (pWizard)
@@ -1063,14 +1063,14 @@
 }
 
-void UIChooserModel::sltReloadMachine(const QString &strId)
+void UIChooserModel::sltReloadMachine(const QUuid &aId)
 {
     /* Remove all the items first: */
-    mainRoot()->removeAllItems(strId);
+    mainRoot()->removeAllItems(aId);
     /* Wipe out empty groups: */
     cleanupGroupTree();
 
     /* Show machine if we should: */
-    CMachine comMachine = vboxGlobal().virtualBox().FindMachine(strId);
-    if (gEDataManager->showMachineInSelectorChooser(strId))
+    CMachine comMachine = vboxGlobal().virtualBox().FindMachine(aId.toString());
+    if (gEDataManager->showMachineInSelectorChooser(aId))
         addMachineIntoTheTree(comMachine);
 
@@ -1156,7 +1156,7 @@
 
     /* Prepare arrays: */
-    QMap<QString, bool> verdicts;
+    QMap<QUuid, bool> verdicts;
     QList<UIChooserItem*> itemsToRemove;
-    QStringList machinesToUnregister;
+    QList<QUuid> machinesToUnregister;
 
     /* For each selected machine-item: */
@@ -1164,11 +1164,11 @@
     {
         /* Get machine-item id: */
-        QString strId = pItem->toMachineItem()->id();
+        QUuid uId = pItem->toMachineItem()->id();
 
         /* We already decided for that machine? */
-        if (verdicts.contains(strId))
+        if (verdicts.contains(uId))
         {
             /* To remove similar machine items? */
-            if (!verdicts[strId])
+            if (!verdicts[uId])
                 itemsToRemove << pItem;
             continue;
@@ -1178,10 +1178,10 @@
         int iSelectedCopyCount = 0;
         foreach (UIChooserItem *pSelectedItem, selectedMachineItemList)
-            if (pSelectedItem->toMachineItem()->id() == strId)
+            if (pSelectedItem->toMachineItem()->id() == uId)
                 ++iSelectedCopyCount;
         /* Existing copy count: */
         int iExistingCopyCount = 0;
         foreach (UIChooserItem *pExistingItem, existingMachineItemList)
-            if (pExistingItem->toMachineItem()->id() == strId)
+            if (pExistingItem->toMachineItem()->id() == uId)
                 ++iExistingCopyCount;
         /* If selected copy count equal to existing copy count,
@@ -1189,7 +1189,7 @@
          * we will just propose to remove selected items: */
         bool fVerdict = iSelectedCopyCount == iExistingCopyCount;
-        verdicts.insert(strId, fVerdict);
+        verdicts.insert(uId, fVerdict);
         if (fVerdict)
-            machinesToUnregister << strId;
+            machinesToUnregister.append(uId);
         else
             itemsToRemove << pItem;
@@ -1440,20 +1440,20 @@
 
     /* Setup global connections: */
-    connect(gVBoxEvents, SIGNAL(sigMachineStateChange(QString, KMachineState)),
-            this, SLOT(sltMachineStateChanged(QString, KMachineState)));
-    connect(gVBoxEvents, SIGNAL(sigMachineDataChange(QString)),
-            this, SLOT(sltMachineDataChanged(QString)));
-    connect(gVBoxEvents, SIGNAL(sigMachineRegistered(QString, bool)),
-            this, SLOT(sltMachineRegistered(QString, bool)));
-    connect(gVBoxEvents, SIGNAL(sigSessionStateChange(QString, KSessionState)),
-            this, SLOT(sltSessionStateChanged(QString, KSessionState)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotTake(QString, QString)),
-            this, SLOT(sltSnapshotChanged(QString, QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotDelete(QString, QString)),
-            this, SLOT(sltSnapshotChanged(QString, QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QString, QString)),
-            this, SLOT(sltSnapshotChanged(QString, QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotRestore(QString, QString)),
-            this, SLOT(sltSnapshotChanged(QString, QString)));
+    connect(gVBoxEvents, SIGNAL(sigMachineStateChange(QUuid, KMachineState)),
+            this, SLOT(sltMachineStateChanged(QUuid, KMachineState)));
+    connect(gVBoxEvents, SIGNAL(sigMachineDataChange(QUuid)),
+            this, SLOT(sltMachineDataChanged(QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigMachineRegistered(QUuid, bool)),
+            this, SLOT(sltMachineRegistered(QUuid, bool)));
+    connect(gVBoxEvents, SIGNAL(sigSessionStateChange(QUuid, KSessionState)),
+            this, SLOT(sltSessionStateChanged(QUuid, KSessionState)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotTake(QUuid, QUuid)),
+            this, SLOT(sltSnapshotChanged(QUuid, QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotDelete(QUuid, QUuid)),
+            this, SLOT(sltSnapshotChanged(QUuid, QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QUuid, QUuid)),
+            this, SLOT(sltSnapshotChanged(QUuid, QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotRestore(QUuid, QUuid)),
+            this, SLOT(sltSnapshotChanged(QUuid, QUuid)));
 
     /* Setup action connections: */
@@ -1754,6 +1754,6 @@
     foreach (CMachine machine, vboxGlobal().virtualBox().GetMachines())
     {
-        const QString strMachineID = machine.GetId();
-        if (!strMachineID.isEmpty() && gEDataManager->showMachineInSelectorChooser(strMachineID))
+        const QUuid uMachineID = machine.GetId();
+        if (!uMachineID.isNull() && gEDataManager->showMachineInSelectorChooser(uMachineID))
             addMachineIntoTheTree(machine);
     }
@@ -1769,5 +1769,5 @@
 
     /* Which VM we are loading: */
-    LogRelFlow(("UIChooserModel: Loading VM with ID={%s}...\n", machine.GetId().toUtf8().constData()));
+    LogRelFlow(("UIChooserModel: Loading VM with ID={%s}...\n", machine.GetId().toString().toUtf8().constData()));
     /* Is that machine accessible? */
     if (machine.GetAccessible())
@@ -1793,5 +1793,5 @@
         }
         /* Update group definitions: */
-        m_groups[machine.GetId()] = groupList;
+        m_groups[machine.GetId().toString()] = groupList;
     }
     /* Inaccessible machine: */
@@ -1799,5 +1799,5 @@
     {
         /* VM is accessible: */
-        LogRelFlow(("UIChooserModel:  VM {%s} is inaccessible.\n", machine.GetId().toUtf8().constData()));
+        LogRelFlow(("UIChooserModel:  VM {%s} is inaccessible.\n", machine.GetId().toString().toUtf8().constData()));
         /* Create machine-item with main-root group-item as parent: */
         createMachineItem(machine, mainRoot());
@@ -1911,5 +1911,5 @@
             /* Which position should be current item placed by definitions? */
             QString strDefinitionName = pItem->type() == UIChooserItemType_Group ? pItem->name() :
-                                        pItem->type() == UIChooserItemType_Machine ? pItem->toMachineItem()->id() :
+                                        pItem->type() == UIChooserItemType_Machine ? pItem->toMachineItem()->id().toString() :
                                         QString();
             AssertMsg(!strDefinitionName.isEmpty(), ("Wrong definition name!"));
@@ -1978,5 +1978,5 @@
 {
     /* Create machine-item: */
-    new UIChooserItemMachine(pParentItem, machine, getDesiredPosition(pParentItem, UIChooserItemType_Machine, machine.GetId()));
+    new UIChooserItemMachine(pParentItem, machine, getDesiredPosition(pParentItem, UIChooserItemType_Machine, machine.GetId().toString()));
 }
 
@@ -2011,12 +2011,12 @@
 }
 
-void UIChooserModel::unregisterMachines(const QStringList &ids)
+void UIChooserModel::unregisterMachines(const QList<QUuid> &ids)
 {
     /* Populate machine list: */
     QList<CMachine> machines;
     CVirtualBox vbox = vboxGlobal().virtualBox();
-    foreach (const QString &strId, ids)
-    {
-        CMachine machine = vbox.FindMachine(strId);
+    foreach (const QUuid &uId, ids)
+    {
+        CMachine machine = vbox.FindMachine(uId.toString());
         if (!machine.isNull())
             machines << machine;
@@ -2129,6 +2129,6 @@
     UIThreadGroupDefinitionSave::prepare();
     emit sigGroupSavingStateChanged();
-    connect(UIThreadGroupDefinitionSave::instance(), SIGNAL(sigReload(QString)),
-            this, SLOT(sltReloadMachine(QString)));
+    connect(UIThreadGroupDefinitionSave::instance(), SIGNAL(sigReload(QUuid)),
+            this, SLOT(sltReloadMachine(QUuid)));
     UIThreadGroupDefinitionSave::instance()->configure(this, m_groups, groups);
     UIThreadGroupDefinitionSave::instance()->start();
@@ -2160,5 +2160,5 @@
         if (UIChooserItemMachine *pMachineItem = pItem->toMachineItem())
             if (pMachineItem->accessible())
-                definitions[pMachineItem->id()] << pParentGroup->fullName();
+                definitions[pMachineItem->id().toString()] << pParentGroup->fullName();
     /* Iterate over all the group-items: */
     foreach (UIChooserItem *pItem, pParentGroup->items(UIChooserItemType_Group))
@@ -2180,5 +2180,5 @@
     /* Iterate over all the machine-items: */
     foreach (UIChooserItem *pItem, pParentItem->items(UIChooserItemType_Machine))
-        orders[strExtraDataKey] << QString("m=%1").arg(pItem->toMachineItem()->id());
+        orders[strExtraDataKey] << QString("m=%1").arg(pItem->toMachineItem()->id().toString());
 }
 
@@ -2284,5 +2284,5 @@
         {
             /* 1. Open session: */
-            session = vboxGlobal().openSession(strId);
+            session = vboxGlobal().openSession(QUuid(strId));
             if (session.isNull())
                 break;
@@ -2312,5 +2312,5 @@
         /* Cleanup if necessary: */
         if (machine.isNull() || !machine.isOk())
-            emit sigReload(strId);
+            emit sigReload(QUuid(strId));
         if (!session.isNull())
             session.UnlockMachine();
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.h	(revision 74878)
@@ -25,4 +25,5 @@
 #include <QThread>
 #include <QTransform>
+#include <QUuid>
 
 /* GUI includes: */
@@ -266,13 +267,13 @@
       * @{ */
         /** Handles machine @a enmState change for machine with certain @a strId. */
-        void sltMachineStateChanged(QString strId, KMachineState enmState);
+        void sltMachineStateChanged(const QUuid &aId, const KMachineState enmState);
         /** Handles machine data change for machine with certain @a strId. */
-        void sltMachineDataChanged(QString strId);
+        void sltMachineDataChanged(const QUuid &aId);
         /** Handles machine registering/unregistering for machine with certain @a strId. */
-        void sltMachineRegistered(QString strId, bool fRegistered);
+        void sltMachineRegistered(const QUuid &aId, const bool fRegistered);
         /** Handles session @a enmState change for machine with certain @a strId. */
-        void sltSessionStateChanged(QString strId, KSessionState enmState);
+        void sltSessionStateChanged(const QUuid &aId, const KSessionState enmState);
         /** Handles snapshot change for machine/snapshot with certain @a strId / @a strSnapshotId. */
-        void sltSnapshotChanged(QString strId, QString strSnapshotId);
+        void sltSnapshotChanged(const QUuid &aId, const QUuid &aSnapshotId);
     /** @} */
 
@@ -304,5 +305,5 @@
         void sltGroupSelectedMachines();
         /** Handles reload machine with certain @a strId request. */
-        void sltReloadMachine(const QString &strId);
+        void sltReloadMachine(const QUuid &aId);
         /** Handles sort parent group request. */
         void sltSortParentGroup();
@@ -431,5 +432,5 @@
         void removeItems(const QList<UIChooserItem*> &items);
         /** Unregisters virtual machines using list of @a ids. */
-        void unregisterMachines(const QStringList &ids);
+        void unregisterMachines(const QList<QUuid> &ids);
 
         /** Processes drag move @a pEvent. */
@@ -514,5 +515,5 @@
 
         /** Holds the Id of last VM created from the GUI side. */
-        QString  m_strLastCreatedMachineId;
+        QUuid  m_uLastCreatedMachineId;
     /** @} */
 
@@ -533,5 +534,5 @@
 
     /** Notifies about machine with certain @a strId to be reloaded. */
-    void sigReload(QString strId);
+    void sigReload(const QUuid &aId);
 
     /** Notifies about task is complete. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetails.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetails.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetails.h	(revision 74878)
@@ -41,5 +41,5 @@
     void sigLinkClicked(const QString &strCategory,
                         const QString &strControl,
-                        const QString &strId);
+                        const QUuid &aId);
 
     /** Notifies listeners about sliding started. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.cpp	(revision 74878)
@@ -533,6 +533,6 @@
     connect(this, SIGNAL(sigToggleElement(DetailsElementType, bool)),
             model(), SLOT(sltToggleElements(DetailsElementType, bool)));
-    connect(this, SIGNAL(sigLinkClicked(const QString&, const QString&, const QString&)),
-            model(), SIGNAL(sigLinkClicked(const QString&, const QString&, const QString&)));
+    connect(this, SIGNAL(sigLinkClicked(const QString&, const QString&, const QUuid &)),
+            model(), SIGNAL(sigLinkClicked(const QString&, const QString&, const QUuid &)));
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.h	(revision 74878)
@@ -64,5 +64,5 @@
           * @param  strControl   Brings the wanted settings control.
           * @param  strId        Brings the ID. */
-        void sigLinkClicked(const QString &strCategory, const QString &strControl, const QString &strId);
+        void sigLinkClicked(const QString &strCategory, const QString &strControl, const QUuid &strId);
     /** @} */
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp	(revision 74878)
@@ -79,8 +79,8 @@
 
     /* Generate new group-id: */
-    m_strGroupId = QUuid::createUuid().toString();
+    m_uGroupId = QUuid::createUuid();
 
     /* Request to build first step: */
-    emit sigBuildStep(m_strGroupId, 0);
+    emit sigBuildStep(m_uGroupId, 0);
 }
 
@@ -88,5 +88,5 @@
 {
     /* Generate new group-id: */
-    m_strGroupId = QUuid::createUuid().toString();
+    m_uGroupId = QUuid::createUuid();
 }
 
@@ -172,5 +172,5 @@
 }
 
-void UIDetailsGroup::sltBuildStep(QString strStepId, int iStepNumber)
+void UIDetailsGroup::sltBuildStep(const QUuid &aStepId, int iStepNumber)
 {
     /* Cleanup build-step: */
@@ -179,5 +179,5 @@
 
     /* Is step id valid? */
-    if (strStepId != m_strGroupId)
+    if (aStepId != m_uGroupId)
         return;
 
@@ -194,5 +194,5 @@
 
         /* Create next build-step: */
-        m_pBuildStep = new UIPrepareStep(this, pSet, strStepId, iStepNumber + 1);
+        m_pBuildStep = new UIPrepareStep(this, pSet, aStepId, iStepNumber + 1);
 
         /* Build set: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.h	(revision 74878)
@@ -86,5 +86,5 @@
           * @param  iStepNumber  Brings the step number. */
     /** @} */
-    virtual void sltBuildStep(QString strStepId, int iStepNumber) /* override */;
+    virtual void sltBuildStep(const QUuid &aStepId, int iStepNumber) /* override */;
 
 protected:
@@ -143,5 +143,5 @@
         UIPrepareStep *m_pBuildStep;
         /** Holds the generated group ID. */
-        QString        m_strGroupId;
+        QUuid          m_uGroupId;
     /** @} */
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsItem.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsItem.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsItem.cpp	(revision 74878)
@@ -271,5 +271,5 @@
 }
 
-void UIDetailsItem::sltBuildStep(QString, int)
+void UIDetailsItem::sltBuildStep(const QUuid &, int)
 {
     AssertMsgFailed(("This item doesn't support building!"));
@@ -281,7 +281,7 @@
 *********************************************************************************************************************************/
 
-UIPrepareStep::UIPrepareStep(QObject *pParent, QObject *pBuildObject, const QString &strStepId, int iStepNumber)
+UIPrepareStep::UIPrepareStep(QObject *pParent, QObject *pBuildObject, const QUuid &aStepId, int iStepNumber)
     : QObject(pParent)
-    , m_strStepId(strStepId)
+    , m_uStepId(aStepId)
     , m_iStepNumber(iStepNumber)
 {
@@ -290,6 +290,6 @@
             this, SLOT(sltStepDone()),
             Qt::QueuedConnection);
-    connect(this, SIGNAL(sigStepDone(QString, int)),
-            pParent, SLOT(sltBuildStep(QString, int)),
+    connect(this, SIGNAL(sigStepDone(QUuid, int)),
+            pParent, SLOT(sltBuildStep(QUuid, int)),
             Qt::QueuedConnection);
 }
@@ -297,4 +297,4 @@
 void UIPrepareStep::sltStepDone()
 {
-    emit sigStepDone(m_strStepId, m_iStepNumber);
-}
+    emit sigStepDone(m_uStepId, m_iStepNumber);
+}
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsItem.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsItem.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsItem.h	(revision 74878)
@@ -18,4 +18,7 @@
 #ifndef ___UIDetailsItem_h___
 #define ___UIDetailsItem_h___
+
+/* Qt includes */
+#include <QUuid>
 
 /* GUI includes: */
@@ -56,5 +59,5 @@
           * @param  strStepId    Brings the step ID.
           * @param  iStepNumber  Brings the step number. */
-        void sigBuildStep(QString strStepId, int iStepNumber);
+        void sigBuildStep(const QUuid &aStepId, int iStepNumber);
         /** Notifies listeners about step build complete. */
         void sigBuildDone();
@@ -127,5 +130,5 @@
           * @param  iStepNumber  Brings the step number. */
     /** @} */
-    virtual void sltBuildStep(QString strStepId, int iStepNumber);
+    virtual void sltBuildStep(const QUuid &aStepId, int iStepNumber);
 
 protected:
@@ -154,5 +157,5 @@
       * @param  strStepId    Brings the step ID.
       * @param  iStepNumber  Brings the step number. */
-    void sigStepDone(QString strStepId, int iStepNumber);
+    void sigStepDone(const QUuid& aStepId, int iStepNumber);
 
 public:
@@ -162,5 +165,5 @@
       * @param  strStepId     Brings the step ID.
       * @param  iStepNumber   Brings the step number.*/
-    UIPrepareStep(QObject *pParent, QObject *pBuildObject, const QString &strStepId, int iStepNumber);
+    UIPrepareStep(QObject *pParent, QObject *pBuildObject, const QUuid &aStepId, int iStepNumber);
 
 private slots:
@@ -172,7 +175,7 @@
 
     /** Holds the step ID. */
-    QString  m_strStepId;
+    QUuid  m_uStepId;
     /** Holds the step number. */
-    int      m_iStepNumber;
+    int    m_iStepNumber;
 };
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsModel.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsModel.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsModel.h	(revision 74878)
@@ -54,5 +54,5 @@
 
     /* Notifier: Link processing stuff: */
-    void sigLinkClicked(const QString &strCategory, const QString &strControl, const QString &strId);
+    void sigLinkClicked(const QString &strCategory, const QString &strControl, const QUuid &aId);
 
 public:
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp	(revision 74878)
@@ -115,5 +115,5 @@
 }
 
-void UIDetailsSet::sltBuildStep(QString strStepId, int iStepNumber)
+void UIDetailsSet::sltBuildStep(const QUuid &aStepId, int iStepNumber)
 {
     /* Cleanup build-step: */
@@ -122,5 +122,5 @@
 
     /* Is step id valid? */
-    if (strStepId != m_strSetId)
+    if (aStepId != m_uSetId)
         return;
 
@@ -175,5 +175,5 @@
         {
             /* Create next build-step: */
-            m_pBuildStep = new UIPrepareStep(this, pElement, strStepId, iStepNumber + 1);
+            m_pBuildStep = new UIPrepareStep(this, pElement, aStepId, iStepNumber + 1);
 
             /* Build element: */
@@ -184,5 +184,5 @@
         {
             /* Just build next step: */
-            sltBuildStep(strStepId, iStepNumber + 1);
+            sltBuildStep(aStepId, iStepNumber + 1);
         }
     }
@@ -541,8 +541,8 @@
 }
 
-void UIDetailsSet::sltMachineStateChange(QString strId)
+void UIDetailsSet::sltMachineStateChange(const QUuid &aId)
 {
     /* Is this our VM changed? */
-    if (m_machine.GetId() != strId)
+    if (m_machine.GetId() != aId)
         return;
 
@@ -551,8 +551,8 @@
 }
 
-void UIDetailsSet::sltMachineAttributesChange(QString strId)
+void UIDetailsSet::sltMachineAttributesChange(const QUuid &aId)
 {
     /* Is this our VM changed? */
-    if (m_machine.GetId() != strId)
+    if (m_machine.GetId() != aId)
         return;
 
@@ -576,11 +576,11 @@
 {
     /* Global-events connections: */
-    connect(gVBoxEvents, SIGNAL(sigMachineStateChange(QString, KMachineState)), this, SLOT(sltMachineStateChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigMachineDataChange(QString)), this, SLOT(sltMachineAttributesChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigSessionStateChange(QString, KSessionState)), this, SLOT(sltMachineAttributesChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotTake(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotDelete(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotRestore(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
+    connect(gVBoxEvents, SIGNAL(sigMachineStateChange(QUuid, KMachineState)), this, SLOT(sltMachineStateChange(QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigMachineDataChange(QUuid)), this, SLOT(sltMachineAttributesChange(QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSessionStateChange(QUuid, KSessionState)), this, SLOT(sltMachineAttributesChange(QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotTake(QUuid, QUuid)), this, SLOT(sltMachineAttributesChange(QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotDelete(QUuid, QUuid)), this, SLOT(sltMachineAttributesChange(QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QUuid, QUuid)), this, SLOT(sltMachineAttributesChange(QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotRestore(QUuid, QUuid)), this, SLOT(sltMachineAttributesChange(QUuid)));
 
     /* Meidum-enumeration connections: */
@@ -617,8 +617,8 @@
 
     /* Generate new set-id: */
-    m_strSetId = QUuid::createUuid().toString();
+    m_uSetId = QUuid::createUuid();
 
     /* Request to build first step: */
-    emit sigBuildStep(m_strSetId, DetailsElementType_General);
+    emit sigBuildStep(m_uSetId, DetailsElementType_General);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.h	(revision 74878)
@@ -72,5 +72,5 @@
           * @param  iStepNumber  Brings the step number. */
     /** @} */
-    virtual void sltBuildStep(QString strStepId, int iStepNumber) /* override */;
+    virtual void sltBuildStep(const QUuid &aStepId, int iStepNumber) /* override */;
 
 protected:
@@ -125,7 +125,7 @@
       * @{ */
         /** Handles machine-state change for item with @a strId. */
-        void sltMachineStateChange(QString strId);
+        void sltMachineStateChange(const QUuid &aId);
         /** Handles machine-attribute change for item with @a strId. */
-        void sltMachineAttributesChange(QString strId);
+        void sltMachineAttributesChange(const QUuid &aId);
     /** @} */
 
@@ -206,5 +206,5 @@
         int            m_iLastStepNumber;
         /** Holds the generated set ID. */
-        QString        m_strSetId;
+        QUuid          m_uSetId;
     /** @} */
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIMachinePreview.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIMachinePreview.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIMachinePreview.cpp	(revision 74878)
@@ -113,6 +113,6 @@
     /* Setup connections: */
     connect(m_pUpdateTimer, SIGNAL(timeout()), this, SLOT(sltRecreatePreview()));
-    connect(gVBoxEvents, SIGNAL(sigMachineStateChange(QString, KMachineState)),
-            this, SLOT(sltMachineStateChange(QString)));
+    connect(gVBoxEvents, SIGNAL(sigMachineStateChange(QUuid, KMachineState)),
+            this, SLOT(sltMachineStateChange(QUuid)));
 
     /* Retranslate the UI */
@@ -170,8 +170,8 @@
 }
 
-void UIMachinePreview::sltMachineStateChange(QString strId)
+void UIMachinePreview::sltMachineStateChange(const QUuid &aId)
 {
     /* Make sure its the event for our machine: */
-    if (m_machine.isNull() || m_machine.GetId() != strId)
+    if (m_machine.isNull() || m_machine.GetId() != aId)
         return;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIMachinePreview.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIMachinePreview.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIMachinePreview.h	(revision 74878)
@@ -66,5 +66,5 @@
 
     /* Handler: Global-event listener stuff: */
-    void sltMachineStateChange(QString strId);
+    void sltMachineStateChange(const QUuid &aId);
 
     /* Handler: Preview recreator: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIFDCreationDialog.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIFDCreationDialog.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIFDCreationDialog.cpp	(revision 74878)
@@ -213,5 +213,5 @@
     }
     /* Store the id of the newly create medium: */
-    m_strMediumID = newMedium.GetId();
+    m_uMediumID = newMedium.GetId();
 
     /* Notify VBoxGlobal about the new medium: */
@@ -225,6 +225,6 @@
 }
 
-QString UIFDCreationDialog::mediumID() const
-{
-    return m_strMediumID;
-}
+QUuid UIFDCreationDialog::mediumID() const
+{
+    return m_uMediumID;
+}
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIFDCreationDialog.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIFDCreationDialog.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIFDCreationDialog.h	(revision 74878)
@@ -21,5 +21,5 @@
 /* Qt includes: */
 #include <QDialog>
-
+#include <QUuid>
 
 /* GUI Includes */
@@ -48,5 +48,5 @@
     virtual void accept() /* override */;
     /* Return the mediumID */
-    QString mediumID() const;
+    QUuid mediumID() const;
 
 protected:
@@ -77,5 +77,5 @@
     QString             m_strMachineName;
     QString             m_strMachineFolder;
-    QString             m_strMediumID;
+    QUuid               m_uMediumID;
 };
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.cpp	(revision 74878)
@@ -38,5 +38,5 @@
 #endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
 
-QString UIMedium::m_sstrNullID = QUuid().toString().remove('{').remove('}');
+QUuid   UIMedium::m_uNullID;
 QString UIMedium::m_sstrTable = QString("<table>%1</table>");
 QString UIMedium::m_sstrRow = QString("<tr><td>%1</td></tr>");
@@ -87,9 +87,9 @@
     m_strLastAccessError = other.lastAccessError();
 
-    m_strId = other.id();
-    m_strRootId = other.rootID();
-    m_strParentId = other.parentID();
-
-    m_strKey = other.key();
+    m_uId = other.id();
+    m_uRootId = other.rootID();
+    m_uParentId = other.parentID();
+
+    m_uKey = other.key();
 
     m_strName = other.name();
@@ -155,7 +155,7 @@
 {
     /* Reset ID parameters: */
-    m_strId = nullID();
-    m_strRootId = nullID();
-    m_strParentId = nullID();
+    m_uId = nullID();
+    m_uRootId = nullID();
+    m_uParentId = nullID();
 
     /* Reset cache parameters: */
@@ -200,11 +200,11 @@
     {
         /* Refresh medium ID: */
-        m_strId = normalizedID(m_medium.GetId());
+        m_uId = normalizedID(m_medium.GetId());
         /* Refresh root medium ID: */
-        m_strRootId = m_strId;
+        m_uRootId = m_uId;
 
         /* Init medium key if necessary: */
-        if (m_strKey.isNull())
-            m_strKey = m_strId;
+        if (m_uKey.isNull())
+            m_uKey = m_uId;
 
         /* Check whether this is host-drive medium: */
@@ -273,5 +273,5 @@
             CMedium parentMedium = m_medium.GetParent();
             if (!parentMedium.isNull())
-                m_strParentId = normalizedID(parentMedium.GetId());
+                m_uParentId = normalizedID(parentMedium.GetId());
 
             /* Only for created and accessible media: */
@@ -281,10 +281,10 @@
                 while (!parentMedium.isNull())
                 {
-                    m_strRootId = normalizedID(parentMedium.GetId());
+                    m_uRootId = normalizedID(parentMedium.GetId());
                     parentMedium = parentMedium.GetParent();
                 }
 
                 /* Refresh encryption attributes: */
-                if (m_strRootId != m_strId)
+                if (m_uRootId != m_uId)
                 {
                     m_strEncryptionPasswordID = root().encryptionPasswordID();
@@ -329,8 +329,8 @@
             QString strMachineUsage;
             /* Walk through all the machines this medium attached to: */
-            foreach (const QString &strMachineID, m_machineIds)
+            foreach (const QUuid &uMachineID, m_machineIds)
             {
                 /* Look for the corresponding machine: */
-                CMachine machine = vbox.FindMachine(strMachineID);
+                CMachine machine = vbox.FindMachine(uMachineID.toString());
 
                 /* UIMedium object can wrap newly created CMedium object
@@ -346,5 +346,5 @@
 
                 /* Finally we can precisely check if current machine is 'hidden': */
-                if (gEDataManager->showMachineInSelectorChooser(strMachineID))
+                if (gEDataManager->showMachineInSelectorChooser(uMachineID))
                     m_fUsedByHiddenMachinesOnly = false;
 
@@ -352,17 +352,17 @@
                 QString strSnapshotUsage;
                 /* Walk through all the snapshots this medium attached to: */
-                foreach (const QString &strSnapshotID, m_medium.GetSnapshotIds(strMachineID))
-                {
-                    if (strSnapshotID == strMachineID)
+                foreach (const QUuid &uSnapshotID, m_medium.GetSnapshotIds(uMachineID))
+                {
+                    if (uSnapshotID == uMachineID)
                     {
                         /* The medium is attached to the machine in the current
                          * state, we don't distinguish this for now by always
                          * giving the VM name in front of snapshot names. */
-                        m_curStateMachineIds.push_back(strSnapshotID);
+                        m_curStateMachineIds.push_back(uSnapshotID);
                         continue;
                     }
 
                     /* Look for the corresponding snapshot: */
-                    CSnapshot snapshot = machine.FindSnapshot(strSnapshotID);
+                    CSnapshot snapshot = machine.FindSnapshot(uSnapshotID.toString());
 
                     /* Snapshot can be NULL while takeSnaphot is in progress: */
@@ -433,10 +433,10 @@
 void UIMedium::updateParentID()
 {
-    m_strParentId = nullID();
+    m_uParentId = nullID();
     if (m_type == UIMediumDeviceType_HardDisk)
     {
         CMedium parentMedium = m_medium.GetParent();
         if (!parentMedium.isNull())
-            m_strParentId = normalizedID(parentMedium.GetId());
+            m_uParentId = normalizedID(parentMedium.GetId());
     }
 }
@@ -565,16 +565,14 @@
 
 /* static */
-QString UIMedium::nullID()
-{
-    return m_sstrNullID;
+QUuid UIMedium::nullID()
+{
+    return m_uNullID;
 }
 
 /* static */
-QString UIMedium::normalizedID(const QString &strID)
-{
-    /* Handle wrong UUID (null/empty or invalid format): */
-    if (QUuid(strID).toString().remove('{').remove('}') != strID)
-        return nullID();
-    return strID;
+QUuid UIMedium::normalizedID(const QUuid &aID)
+{
+    /// @todo wipe out!
+    return aID;
 }
 
@@ -601,5 +599,5 @@
 {
     /* Redirect call to VBoxGlobal: */
-    return vboxGlobal().medium(m_strRootId);
+    return vboxGlobal().medium(m_uRootId);
 }
 
@@ -607,5 +605,5 @@
 {
     /* Redirect call to VBoxGlobal: */
-    return vboxGlobal().medium(m_strParentId);
+    return vboxGlobal().medium(m_uParentId);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.h	(revision 74878)
@@ -126,6 +126,6 @@
     bool isNull() const
     {
-        AssertReturn(m_strId != nullID() || m_medium.isNull(), true);
-        return m_strId == nullID();
+        AssertReturn(m_uId != nullID() || m_medium.isNull(), true);
+        return m_uId == nullID();
     }
 
@@ -155,10 +155,10 @@
 
     /** Returns the medium ID. */
-    QString id() const { return m_strId; }
+    QUuid id() const { return m_uId; }
 
     /** Returns the medium root ID. */
-    QString rootID() const { return m_strRootId; }
+    QUuid rootID() const { return m_uRootId; }
     /** Returns the medium parent ID. */
-    QString parentID() const { return m_strParentId; }
+    QUuid parentID() const { return m_uParentId; }
 
     /** Updates medium parent. */
@@ -166,7 +166,7 @@
 
     /** Returns the medium cache key. */
-    QString key() const { return m_strKey; }
+    QUuid key() const { return m_uKey; }
     /** Defines the medium cache @a strKey. */
-    void setKey(const QString &strKey) { m_strKey = strKey; }
+    void setKey(const QUuid &aKey) { m_uKey = aKey; }
 
     /** Returns the medium name.
@@ -309,14 +309,14 @@
 
     /** Returns a vector of IDs of all machines this medium is attached to. */
-    const QList<QString>& machineIds() const { return m_machineIds; }
+    const QList<QUuid>& machineIds() const { return m_machineIds; }
     /** Returns a vector of IDs of all machines this medium is attached to
       * in their current state (i.e. excluding snapshots). */
-    const QList<QString>& curStateMachineIds() const { return m_curStateMachineIds; }
+    const QList<QUuid>& curStateMachineIds() const { return m_curStateMachineIds; }
 
     /** Returns NULL medium ID. */
-    static QString nullID();
+    static QUuid nullID();
 
     /** Returns passed @a strID if it's valid or #nullID() overwise. */
-    static QString normalizedID(const QString &strID);
+    static QUuid normalizedID(const QUuid &aID);
 
     /** Determines if passed @a medium is attached to hidden machines only. */
@@ -351,12 +351,12 @@
 
     /** Holds the medium ID. */
-    QString m_strId;
+    QUuid m_uId;
     /** Holds the medium root ID. */
-    QString m_strRootId;
+    QUuid m_uRootId;
     /** Holds the medium parent ID. */
-    QString m_strParentId;
+    QUuid m_uParentId;
 
     /** Holds the medium cache key. */
-    QString m_strKey;
+    QUuid m_uKey;
 
     /** Holds the medium name. */
@@ -397,8 +397,8 @@
     QString m_strToolTip;
     /** Holds the vector of IDs of all machines this medium is attached to. */
-    QList<QString> m_machineIds;
+    QList<QUuid> m_machineIds;
     /** Hodls the vector of IDs of all machines this medium is attached to
       * in their current state (i.e. excluding snapshots). */
-    QList<QString> m_curStateMachineIds;
+    QList<QUuid> m_curStateMachineIds;
 
     /** Holds the medium cache for "don't show diffs" mode. */
@@ -419,5 +419,5 @@
 
     /** Holds the NULL medium ID. */
-    static QString m_sstrNullID;
+    static QUuid m_uNullID;
     /** Holds the medium tool-tip table template. */
     static QString m_sstrTable;
@@ -427,5 +427,5 @@
 Q_DECLARE_METATYPE(UIMedium);
 
-typedef QMap<QString, UIMedium> UIMediumMap;
+typedef QMap<QUuid, UIMedium> UIMediumMap;
 
 #endif /* !___UIMedium_h___ */
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumEnumerator.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumEnumerator.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumEnumerator.cpp	(revision 74878)
@@ -38,4 +38,14 @@
 
 
+template<class T>
+static QStringList toStringList(const QList<T> &list)
+{
+    QStringList l;
+    foreach(const T &t, list)
+        l << t.toString();
+    return l;
+}
+
+
 /** UITask extension used for medium enumeration purposes. */
 class UITaskMediumEnumeration : public UITask
@@ -86,5 +96,5 @@
 }
 
-QList<QString> UIMediumEnumerator::mediumIDs() const
+QList<QUuid> UIMediumEnumerator::mediumIDs() const
 {
     /* Return keys of current medium-map: */
@@ -92,9 +102,9 @@
 }
 
-UIMedium UIMediumEnumerator::medium(const QString &strMediumID)
+UIMedium UIMediumEnumerator::medium(const QUuid &aMediumID)
 {
     /* Search through current medium-map for the medium with passed ID: */
-    if (m_media.contains(strMediumID))
-        return m_media[strMediumID];
+    if (m_media.contains(aMediumID))
+        return m_media[aMediumID];
     /* Return NULL medium otherwise: */
     return UIMedium();
@@ -104,34 +114,34 @@
 {
     /* Get medium ID: */
-    const QString strMediumID = medium.id();
+    const QUuid uMediumID = medium.id();
 
     /* Do not create UIMedium(s) with incorrect ID: */
-    AssertReturnVoid(!strMediumID.isNull());
-    AssertReturnVoid(strMediumID != UIMedium::nullID());
+    AssertReturnVoid(!uMediumID.isNull());
+    AssertReturnVoid(uMediumID != UIMedium::nullID());
     /* Make sure medium doesn't exists already: */
-    AssertReturnVoid(!m_media.contains(strMediumID));
+    AssertReturnVoid(!m_media.contains(uMediumID));
 
     /* Insert medium: */
-    m_media[strMediumID] = medium;
-    LogRel(("GUI: UIMediumEnumerator: Medium with key={%s} created\n", strMediumID.toUtf8().constData()));
+    m_media[uMediumID] = medium;
+    LogRel(("GUI: UIMediumEnumerator: Medium with key={%s} created\n", uMediumID.toString().toUtf8().constData()));
 
     /* Notify listener: */
-    emit sigMediumCreated(strMediumID);
-}
-
-void UIMediumEnumerator::deleteMedium(const QString &strMediumID)
+    emit sigMediumCreated(uMediumID);
+}
+
+void UIMediumEnumerator::deleteMedium(const QUuid &aMediumID)
 {
     /* Do not delete UIMedium(s) with incorrect ID: */
-    AssertReturnVoid(!strMediumID.isNull());
-    AssertReturnVoid(strMediumID != UIMedium::nullID());
+    AssertReturnVoid(!aMediumID.isNull());
+    AssertReturnVoid(aMediumID != UIMedium::nullID());
     /* Make sure medium still exists: */
-    AssertReturnVoid(m_media.contains(strMediumID));
+    AssertReturnVoid(m_media.contains(aMediumID));
 
     /* Remove medium: */
-    m_media.remove(strMediumID);
-    LogRel(("GUI: UIMediumEnumerator: Medium with key={%s} deleted\n", strMediumID.toUtf8().constData()));
+    m_media.remove(aMediumID);
+    LogRel(("GUI: UIMediumEnumerator: Medium with key={%s} deleted\n", aMediumID.toString().toUtf8().constData()));
 
     /* Notify listener: */
-    emit sigMediumDeleted(strMediumID);
+    emit sigMediumDeleted(aMediumID);
 }
 
@@ -175,7 +185,7 @@
 
     /* Start enumeration for UIMedium(s) with correct ID: */
-    foreach (const QString &strMediumID, m_media.keys())
-        if (!strMediumID.isNull() && strMediumID != UIMedium::nullID())
-            createMediumEnumerationTask(m_media[strMediumID]);
+    foreach (const QUuid &uMediumID, m_media.keys())
+        if (!uMediumID.isNull() && uMediumID != UIMedium::nullID())
+            createMediumEnumerationTask(m_media[uMediumID]);
 }
 
@@ -186,35 +196,35 @@
 
     /* Refresh all known media we have: */
-    foreach (const QString &strMediumID, m_media.keys())
-        m_media[strMediumID].refresh();
-}
-
-void UIMediumEnumerator::sltHandleMachineUpdate(QString strMachineID)
+    foreach (const QUuid &uMediumID, m_media.keys())
+        m_media[uMediumID].refresh();
+}
+
+void UIMediumEnumerator::sltHandleMachineUpdate(const QUuid &aMachineID)
 {
     LogRel2(("GUI: UIMediumEnumerator: Machine (or snapshot) event received, ID = %s\n",
-             strMachineID.toUtf8().constData()));
+             aMachineID.toString().toUtf8().constData()));
 
     /* Gather previously used UIMedium IDs: */
-    QStringList previousUIMediumIDs;
-    calculateCachedUsage(strMachineID, previousUIMediumIDs, true /* take into account current state only */);
+    QList<QUuid> previousUIMediumIDs;
+    calculateCachedUsage(aMachineID, previousUIMediumIDs, true /* take into account current state only */);
     LogRel2(("GUI: UIMediumEnumerator:  Old usage: %s\n",
-             previousUIMediumIDs.isEmpty() ? "<empty>" : previousUIMediumIDs.join(", ").toUtf8().constData()));
+             previousUIMediumIDs.isEmpty() ? "<empty>" : toStringList(previousUIMediumIDs).join(", ").toUtf8().constData()));
 
     /* Gather currently used CMediums and their IDs: */
     CMediumMap currentCMediums;
-    QStringList currentCMediumIDs;
-    calculateActualUsage(strMachineID, currentCMediums, currentCMediumIDs, true /* take into account current state only */);
+    QList<QUuid> currentCMediumIDs;
+    calculateActualUsage(aMachineID, currentCMediums, currentCMediumIDs, true /* take into account current state only */);
     LogRel2(("GUI: UIMediumEnumerator:  New usage: %s\n",
-             currentCMediumIDs.isEmpty() ? "<empty>" : currentCMediumIDs.join(", ").toUtf8().constData()));
+             currentCMediumIDs.isEmpty() ? "<empty>" : toStringList(currentCMediumIDs).join(", ").toUtf8().constData()));
 
     /* Determine excluded media: */
-    const QSet<QString> previousSet = previousUIMediumIDs.toSet();
-    const QSet<QString> currentSet = currentCMediumIDs.toSet();
-    const QSet<QString> excludedSet = previousSet - currentSet;
-    const QStringList excludedUIMediumIDs = excludedSet.toList();
+    const QSet<QUuid> previousSet = previousUIMediumIDs.toSet();
+    const QSet<QUuid> currentSet = currentCMediumIDs.toSet();
+    const QSet<QUuid> excludedSet = previousSet - currentSet;
+    const QList<QUuid> excludedUIMediumIDs = excludedSet.toList();
     if (!excludedUIMediumIDs.isEmpty())
-        LogRel2(("GUI: UIMediumEnumerator:  Items excluded from usage: %s\n", excludedUIMediumIDs.join(", ").toUtf8().constData()));
+        LogRel2(("GUI: UIMediumEnumerator:  Items excluded from usage: %s\n", toStringList(excludedUIMediumIDs).join(", ").toUtf8().constData()));
     if (!currentCMediumIDs.isEmpty())
-        LogRel2(("GUI: UIMediumEnumerator:  Items currently in usage: %s\n", currentCMediumIDs.join(", ").toUtf8().constData()));
+        LogRel2(("GUI: UIMediumEnumerator:  Items currently in usage: %s\n", toStringList(currentCMediumIDs).join(", ").toUtf8().constData()));
 
     /* Update cache for excluded UIMediums: */
@@ -225,12 +235,12 @@
 
     LogRel2(("GUI: UIMediumEnumerator: Machine (or snapshot) event processed, ID = %s\n",
-             strMachineID.toUtf8().constData()));
-}
-
-void UIMediumEnumerator::sltHandleMachineRegistration(QString strMachineID, bool fRegistered)
+             aMachineID.toString().toUtf8().constData()));
+}
+
+void UIMediumEnumerator::sltHandleMachineRegistration(const QUuid &aMachineID, const bool fRegistered)
 {
     LogRel2(("GUI: UIMediumEnumerator: Machine %s event received, ID = %s\n",
              fRegistered ? "registration" : "unregistration",
-             strMachineID.toUtf8().constData()));
+             aMachineID.toString().toUtf8().constData()));
 
     /* Machine was registered: */
@@ -239,8 +249,8 @@
         /* Gather currently used CMediums and their IDs: */
         CMediumMap currentCMediums;
-        QStringList currentCMediumIDs;
-        calculateActualUsage(strMachineID, currentCMediums, currentCMediumIDs, false /* take into account current state only */);
+        QList<QUuid> currentCMediumIDs;
+        calculateActualUsage(aMachineID, currentCMediums, currentCMediumIDs, false /* take into account current state only */);
         LogRel2(("GUI: UIMediumEnumerator:  New usage: %s\n",
-                 currentCMediumIDs.isEmpty() ? "<empty>" : currentCMediumIDs.join(", ").toUtf8().constData()));
+                 currentCMediumIDs.isEmpty() ? "<empty>" : toStringList(currentCMediumIDs).join(", ").toUtf8().constData()));
         /* Update cache with currently used CMediums: */
         recacheFromActualUsage(currentCMediums, currentCMediumIDs);
@@ -250,8 +260,8 @@
     {
         /* Gather previously used UIMedium IDs: */
-        QStringList previousUIMediumIDs;
-        calculateCachedUsage(strMachineID, previousUIMediumIDs, false /* take into account current state only */);
+        QList<QUuid> previousUIMediumIDs;
+        calculateCachedUsage(aMachineID, previousUIMediumIDs, false /* take into account current state only */);
         LogRel2(("GUI: UIMediumEnumerator:  Old usage: %s\n",
-                 previousUIMediumIDs.isEmpty() ? "<empty>" : previousUIMediumIDs.join(", ").toUtf8().constData()));
+                 previousUIMediumIDs.isEmpty() ? "<empty>" : toStringList(previousUIMediumIDs).join(", ").toUtf8().constData()));
         /* Update cache for previously used UIMediums: */
         recacheFromCachedUsage(previousUIMediumIDs);
@@ -260,24 +270,24 @@
     LogRel2(("GUI: UIMediumEnumerator: Machine %s event processed, ID = %s\n",
              fRegistered ? "registration" : "unregistration",
-             strMachineID.toUtf8().constData()));
-}
-
-void UIMediumEnumerator::sltHandleSnapshotDeleted(QString strMachineID, QString strSnapshotID)
+             aMachineID.toString().toUtf8().constData()));
+}
+
+void UIMediumEnumerator::sltHandleSnapshotDeleted(const QUuid &aMachineID, const QUuid &aSnapshotID)
 {
     LogRel2(("GUI: UIMediumEnumerator: Snapshot-deleted event received, Machine ID = {%s}, Snapshot ID = {%s}\n",
-             strMachineID.toUtf8().constData(), strSnapshotID.toUtf8().constData()));
+             aMachineID.toString().toUtf8().constData(), aSnapshotID.toString().toUtf8().constData()));
 
     /* Gather previously used UIMedium IDs: */
-    QStringList previousUIMediumIDs;
-    calculateCachedUsage(strMachineID, previousUIMediumIDs, false /* take into account current state only */);
+    QList<QUuid> previousUIMediumIDs;
+    calculateCachedUsage(aMachineID, previousUIMediumIDs, false /* take into account current state only */);
     LogRel2(("GUI: UIMediumEnumerator:  Old usage: %s\n",
-             previousUIMediumIDs.isEmpty() ? "<empty>" : previousUIMediumIDs.join(", ").toUtf8().constData()));
+             previousUIMediumIDs.isEmpty() ? "<empty>" : toStringList(previousUIMediumIDs).join(", ").toUtf8().constData()));
 
     /* Gather currently used CMediums and their IDs: */
     CMediumMap currentCMediums;
-    QStringList currentCMediumIDs;
-    calculateActualUsage(strMachineID, currentCMediums, currentCMediumIDs, true /* take into account current state only */);
+    QList<QUuid> currentCMediumIDs;
+    calculateActualUsage(aMachineID, currentCMediums, currentCMediumIDs, true /* take into account current state only */);
     LogRel2(("GUI: UIMediumEnumerator:  New usage: %s\n",
-             currentCMediumIDs.isEmpty() ? "<empty>" : currentCMediumIDs.join(", ").toUtf8().constData()));
+             currentCMediumIDs.isEmpty() ? "<empty>" : toStringList(currentCMediumIDs).join(", ").toUtf8().constData()));
 
     /* Update everything: */
@@ -286,5 +296,5 @@
 
     LogRel2(("GUI: UIMediumEnumerator: Snapshot-deleted event processed, Machine ID = {%s}, Snapshot ID = {%s}\n",
-             strMachineID.toUtf8().constData(), strSnapshotID.toUtf8().constData()));
+             aMachineID.toString().toUtf8().constData(), aSnapshotID.toString().toUtf8().constData()));
 }
 
@@ -298,6 +308,6 @@
     /* Get enumerated UIMedium: */
     const UIMedium uimedium = pTask->property("medium").value<UIMedium>();
-    const QString strUIMediumKey = uimedium.key();
-    LogRel2(("GUI: UIMediumEnumerator: Medium with key={%s} enumerated\n", strUIMediumKey.toUtf8().constData()));
+    const QUuid uUIMediumKey = uimedium.key();
+    LogRel2(("GUI: UIMediumEnumerator: Medium with key={%s} enumerated\n", uUIMediumKey.toString().toUtf8().constData()));
 
     /* Remove task from internal set: */
@@ -305,35 +315,35 @@
 
     /* Make sure such UIMedium still exists: */
-    if (!m_media.contains(strUIMediumKey))
-    {
-        LogRel2(("GUI: UIMediumEnumerator: Medium with key={%s} already deleted by a third party\n", strUIMediumKey.toUtf8().constData()));
+    if (!m_media.contains(uUIMediumKey))
+    {
+        LogRel2(("GUI: UIMediumEnumerator: Medium with key={%s} already deleted by a third party\n", uUIMediumKey.toString().toUtf8().constData()));
         return;
     }
 
     /* Check if UIMedium ID was changed: */
-    const QString strUIMediumID = uimedium.id();
+    const QUuid uUIMediumID = uimedium.id();
     /* UIMedium ID was changed to nullID: */
-    if (strUIMediumID == UIMedium::nullID())
+    if (uUIMediumID == UIMedium::nullID())
     {
         /* Delete this medium: */
-        m_media.remove(strUIMediumKey);
-        LogRel2(("GUI: UIMediumEnumerator: Medium with key={%s} closed and deleted (after enumeration)\n", strUIMediumKey.toUtf8().constData()));
+        m_media.remove(uUIMediumKey);
+        LogRel2(("GUI: UIMediumEnumerator: Medium with key={%s} closed and deleted (after enumeration)\n", uUIMediumKey.toString().toUtf8().constData()));
 
         /* And notify listener about delete: */
-        emit sigMediumDeleted(strUIMediumKey);
+        emit sigMediumDeleted(uUIMediumKey);
     }
     /* UIMedium ID was changed to something proper: */
-    else if (strUIMediumID != strUIMediumKey)
+    else if (uUIMediumID != uUIMediumKey)
     {
         /* We have to reinject enumerated medium: */
-        m_media.remove(strUIMediumKey);
-        m_media[strUIMediumID] = uimedium;
-        m_media[strUIMediumID].setKey(strUIMediumID);
-        LogRel2(("GUI: UIMediumEnumerator: Medium with key={%s} has it changed to {%s}\n", strUIMediumKey.toUtf8().constData(),
-                                                                                           strUIMediumID.toUtf8().constData()));
+        m_media.remove(uUIMediumKey);
+        m_media[uUIMediumID] = uimedium;
+        m_media[uUIMediumID].setKey(uUIMediumID);
+        LogRel2(("GUI: UIMediumEnumerator: Medium with key={%s} has it changed to {%s}\n", uUIMediumKey.toString().toUtf8().constData(),
+                                                                                           uUIMediumID.toString().toUtf8().constData()));
 
         /* And notify listener about delete/create: */
-        emit sigMediumDeleted(strUIMediumKey);
-        emit sigMediumCreated(strUIMediumID);
+        emit sigMediumDeleted(uUIMediumKey);
+        emit sigMediumCreated(uUIMediumID);
     }
     /* UIMedium ID was not changed: */
@@ -341,9 +351,9 @@
     {
         /* Just update enumerated medium: */
-        m_media[strUIMediumID] = uimedium;
-        LogRel2(("GUI: UIMediumEnumerator: Medium with key={%s} updated\n", strUIMediumID.toUtf8().constData()));
+        m_media[uUIMediumID] = uimedium;
+        LogRel2(("GUI: UIMediumEnumerator: Medium with key={%s} updated\n", uUIMediumID.toString().toUtf8().constData()));
 
         /* And notify listener about update: */
-        emit sigMediumEnumerated(strUIMediumID);
+        emit sigMediumEnumerated(uUIMediumID);
     }
 
@@ -379,7 +389,7 @@
     /* Insert NULL uimedium to the passed uimedium map.
      * Get existing one from the previous map if any. */
-    QString strNullMediumID = UIMedium::nullID();
-    UIMedium uimedium = m_media.contains(strNullMediumID) ? m_media[strNullMediumID] : UIMedium();
-    media.insert(strNullMediumID, uimedium);
+    QUuid uNullMediumID = UIMedium::nullID();
+    UIMedium uimedium = m_media.contains(uNullMediumID) ? m_media[uNullMediumID] : UIMedium();
+    media.insert(uNullMediumID, uimedium);
 }
 
@@ -395,6 +405,6 @@
 
         /* Prepare uimedium on the basis of current medium: */
-        QString strMediumID = medium.GetId();
-        UIMedium uimedium = m_media.contains(strMediumID) ? m_media[strMediumID] :
+        QUuid uMediumID = medium.GetId();
+        UIMedium uimedium = m_media.contains(uMediumID) ? m_media[uMediumID] :
             UIMedium(medium, UIMediumDefs::mediumTypeToLocal(medium.GetDeviceType()));
 
@@ -413,18 +423,18 @@
  * @param fTakeIntoAccountCurrentStateOnly defines whether we should take into accound current VM state only.
  */
-void UIMediumEnumerator::calculateCachedUsage(const QString &strMachineID, QStringList &previousUIMediumIDs, bool fTakeIntoAccountCurrentStateOnly) const
+void UIMediumEnumerator::calculateCachedUsage(const QUuid &aMachineID, QList<QUuid> &previousUIMediumIDs, const bool fTakeIntoAccountCurrentStateOnly) const
 {
     /* For each the UIMedium ID cache have: */
-    foreach (const QString &strMediumID, mediumIDs())
+    foreach (const QUuid &uMediumID, mediumIDs())
     {
         /* Get corresponding UIMedium: */
-        const UIMedium &uimedium = m_media[strMediumID];
+        const UIMedium &uimedium = m_media[uMediumID];
         /* Get the list of the machines this UIMedium attached to.
          * Take into account current-state only if necessary. */
-        const QList<QString> &machineIDs = fTakeIntoAccountCurrentStateOnly ?
+        const QList<QUuid> &machineIDs = fTakeIntoAccountCurrentStateOnly ?
                                            uimedium.curStateMachineIds() : uimedium.machineIds();
         /* Add this UIMedium ID to previous usage if necessary: */
-        if (machineIDs.contains(strMachineID))
-            previousUIMediumIDs << strMediumID;
+        if (machineIDs.contains(aMachineID))
+            previousUIMediumIDs.append(uMediumID);
     }
 }
@@ -437,8 +447,8 @@
  * @param fTakeIntoAccountCurrentStateOnly defines whether we should take into accound current VM state only.
  */
-void UIMediumEnumerator::calculateActualUsage(const QString &strMachineID, CMediumMap &currentCMediums, QStringList &currentCMediumIDs, bool fTakeIntoAccountCurrentStateOnly) const
+void UIMediumEnumerator::calculateActualUsage(const QUuid &aMachineID, CMediumMap &currentCMediums, QList<QUuid> &currentCMediumIDs, const bool fTakeIntoAccountCurrentStateOnly) const
 {
     /* Search for corresponding machine: */
-    CMachine machine = vboxGlobal().virtualBox().FindMachine(strMachineID);
+    CMachine machine = vboxGlobal().virtualBox().FindMachine(aMachineID.toString());
     if (machine.isNull())
     {
@@ -460,5 +470,5 @@
  * @param currentCMediumIDs receives CMedium IDs used in actual data.
  */
-void UIMediumEnumerator::calculateActualUsage(const CSnapshot &snapshot, CMediumMap &currentCMediums, QStringList &currentCMediumIDs) const
+void UIMediumEnumerator::calculateActualUsage(const CSnapshot &snapshot, CMediumMap &currentCMediums, QList<QUuid> &currentCMediumIDs) const
 {
     /* Check passed snapshot: */
@@ -480,5 +490,5 @@
  * @param currentCMediumIDs receives CMedium IDs used in actual data.
  */
-void UIMediumEnumerator::calculateActualUsage(const CMachine &machine, CMediumMap &currentCMediums, QStringList &currentCMediumIDs) const
+void UIMediumEnumerator::calculateActualUsage(const CMachine &machine, CMediumMap &currentCMediums, QList<QUuid> &currentCMediumIDs) const
 {
     /* Check passed machine: */
@@ -493,10 +503,10 @@
         {
             /* Make sure that CMedium was not yet closed: */
-            const QString strCMediumID = cmedium.GetId();
-            if (cmedium.isOk() && !strCMediumID.isNull())
+            const QUuid uCMediumID = cmedium.GetId();
+            if (cmedium.isOk() && !uCMediumID.isNull())
             {
                 /* Add this CMedium to current usage: */
-                currentCMediums.insert(strCMediumID, cmedium);
-                currentCMediumIDs << strCMediumID;
+                currentCMediums.insert(uCMediumID, cmedium);
+                currentCMediumIDs.append(uCMediumID);
             }
         }
@@ -508,14 +518,14 @@
  * @param previousUIMediumIDs reflects UIMedium IDs used in cached data.
  */
-void UIMediumEnumerator::recacheFromCachedUsage(const QStringList &previousUIMediumIDs)
+void UIMediumEnumerator::recacheFromCachedUsage(const QList<QUuid> &previousUIMediumIDs)
 {
     /* For each of previously used UIMedium ID: */
-    foreach (const QString &strMediumID, previousUIMediumIDs)
+    foreach (const QUuid &uMediumID, previousUIMediumIDs)
     {
         /* Make sure this ID still in our map: */
-        if (m_media.contains(strMediumID))
+        if (m_media.contains(uMediumID))
         {
             /* Get corresponding UIMedium: */
-            UIMedium &uimedium = m_media[strMediumID];
+            UIMedium &uimedium = m_media[uMediumID];
 
             /* If corresponding CMedium still exists: */
@@ -532,9 +542,9 @@
             {
                 /* Uncache corresponding UIMedium: */
-                m_media.remove(strMediumID);
-                LogRel2(("GUI: UIMediumEnumerator:  Medium with key={%s} uncached\n", strMediumID.toUtf8().constData()));
+                m_media.remove(uMediumID);
+                LogRel2(("GUI: UIMediumEnumerator:  Medium with key={%s} uncached\n", uMediumID.toString().toUtf8().constData()));
 
                 /* And notify listeners: */
-                emit sigMediumDeleted(strMediumID);
+                emit sigMediumDeleted(uMediumID);
             }
         }
@@ -547,27 +557,27 @@
  * @param currentCMediumIDs reflects CMedium IDs used in actual data.
  */
-void UIMediumEnumerator::recacheFromActualUsage(const CMediumMap &currentCMediums, const QStringList &currentCMediumIDs)
+void UIMediumEnumerator::recacheFromActualUsage(const CMediumMap &currentCMediums, const QList<QUuid> &currentCMediumIDs)
 {
     /* For each of currently used CMedium ID: */
-    foreach (const QString &strCMediumID, currentCMediumIDs)
+    foreach (const QUuid &uCMediumID, currentCMediumIDs)
     {
         /* If that ID is not in our map: */
-        if (!m_media.contains(strCMediumID))
+        if (!m_media.contains(uCMediumID))
         {
             /* Create new UIMedium: */
-            const CMedium &cmedium = currentCMediums[strCMediumID];
+            const CMedium &cmedium = currentCMediums[uCMediumID];
             UIMedium uimedium(cmedium, UIMediumDefs::mediumTypeToLocal(cmedium.GetDeviceType()));
-            QString strUIMediumKey = uimedium.key();
+            QUuid uUIMediumKey = uimedium.key();
 
             /* Cache created UIMedium: */
-            m_media.insert(strUIMediumKey, uimedium);
-            LogRel2(("GUI: UIMediumEnumerator:  Medium with key={%s} cached\n", strUIMediumKey.toUtf8().constData()));
+            m_media.insert(uUIMediumKey, uimedium);
+            LogRel2(("GUI: UIMediumEnumerator:  Medium with key={%s} cached\n", uUIMediumKey.toString().toUtf8().constData()));
 
             /* And notify listeners: */
-            emit sigMediumCreated(strUIMediumKey);
+            emit sigMediumCreated(uUIMediumKey);
         }
 
         /* Enumerate corresponding UIMedium: */
-        createMediumEnumerationTask(m_media[strCMediumID]);
+        createMediumEnumerationTask(m_media[uCMediumID]);
     }
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumEnumerator.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumEnumerator.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumEnumerator.h	(revision 74878)
@@ -33,5 +33,5 @@
 
 /* Typedefs: */
-typedef QMap<QString, CMedium> CMediumMap;
+typedef QMap<QUuid, CMedium> CMediumMap;
 
 /* Medium-enumerator prototype.
@@ -44,10 +44,10 @@
 
     /* Notifiers: Medium-operations stuff: */
-    void sigMediumCreated(const QString &strMediumID);
-    void sigMediumDeleted(const QString &strMediumID);
+    void sigMediumCreated(const QUuid &aMediumID);
+    void sigMediumDeleted(const QUuid &aMediumID);
 
     /* Notifiers: Medium-enumeration stuff: */
     void sigMediumEnumerationStarted();
-    void sigMediumEnumerated(const QString &strMediumID);
+    void sigMediumEnumerated(const QUuid &aMediumID);
     void sigMediumEnumerationFinished();
 
@@ -58,8 +58,8 @@
 
     /* API: Medium-access stuff: */
-    QList<QString> mediumIDs() const;
-    UIMedium medium(const QString &strMediumID);
+    QList<QUuid> mediumIDs() const;
+    UIMedium medium(const QUuid &aMediumID);
     void createMedium(const UIMedium &medium);
-    void deleteMedium(const QString &strMediumID);
+    void deleteMedium(const QUuid &aMediumID);
 
     /* API: Medium-enumeration stuff: */
@@ -71,9 +71,9 @@
 
     /** Handles machine-data-change and snapshot-change events. */
-    void sltHandleMachineUpdate(QString strMachineID);
+    void sltHandleMachineUpdate(const QUuid &aMachineID);
     /** Handles machine-[un]registration events. */
-    void sltHandleMachineRegistration(QString strMachineID, bool fRegistered);
+    void sltHandleMachineRegistration(const QUuid &aMachineID, const bool fRegistered);
     /** Handles snapshot-deleted events. */
-    void sltHandleSnapshotDeleted(QString strMachineID, QString strSnapshotID);
+    void sltHandleSnapshotDeleted(const QUuid &aMachineID, const QUuid &aSnapshotID);
 
     /* Handler: Medium-enumeration stuff: */
@@ -91,10 +91,10 @@
 
     /* Helpers: Medium re-caching stuff: */
-    void calculateCachedUsage(const QString &strMachineID, QStringList &previousUIMediumIDs, bool fTakeIntoAccountCurrentStateOnly) const;
-    void calculateActualUsage(const QString &strMachineID, CMediumMap &currentCMediums, QStringList &currentCMediumIDs, bool fTakeIntoAccountCurrentStateOnly) const;
-    void calculateActualUsage(const CSnapshot &snapshot, CMediumMap &currentCMediums, QStringList &currentCMediumIDs) const;
-    void calculateActualUsage(const CMachine &machine, CMediumMap &currentCMediums, QStringList &currentCMediumIDs) const;
-    void recacheFromCachedUsage(const QStringList &previousUIMediumIDs);
-    void recacheFromActualUsage(const CMediumMap &currentCMediums, const QStringList &currentCMediumIDs);
+    void calculateCachedUsage(const QUuid &aMachineID, QList<QUuid> &previousUIMediumIDs, const bool fTakeIntoAccountCurrentStateOnly) const;
+    void calculateActualUsage(const QUuid &strMachineID, CMediumMap &currentCMediums, QList<QUuid> &currentCMediumIDs, const bool fTakeIntoAccountCurrentStateOnly) const;
+    void calculateActualUsage(const CSnapshot &snapshot, CMediumMap &currentCMediums, QList<QUuid> &currentCMediumIDs) const;
+    void calculateActualUsage(const CMachine &machine, CMediumMap &currentCMediums, QList<QUuid> &currentCMediumIDs) const;
+    void recacheFromCachedUsage(const QList<QUuid> &previousUIMediumIDs);
+    void recacheFromActualUsage(const CMediumMap &currentCMediums, const QList<QUuid> &currentCMediumIDs);
 
     /* Variables: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumItem.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumItem.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumItem.cpp	(revision 74878)
@@ -152,6 +152,6 @@
 
     /* Release: */
-    foreach (const QString &strMachineId, medium().curStateMachineIds())
-        if (!releaseFrom(strMachineId))
+    foreach (const QUuid &uMachineId, medium().curStateMachineIds())
+        if (!releaseFrom(uMachineId))
             return false;
 
@@ -231,5 +231,5 @@
                                     formatFieldText(QApplication::translate("UIMediumManager", "<i>Not&nbsp;Encrypted</i>"), false) :
                                     formatFieldText(encryptionPasswordID()));
-            m_details.m_aFields << id();
+            m_details.m_aFields << id().toString();
 
             break;
@@ -244,5 +244,5 @@
                                     formatFieldText(QApplication::translate("UIMediumManager", "<i>Not&nbsp;Attached</i>"), false) :
                                     formatFieldText(usage()));
-            m_details.m_aFields << id();
+            m_details.m_aFields << id().toString();
             break;
         }
@@ -252,8 +252,8 @@
 }
 
-bool UIMediumItem::releaseFrom(const QString &strMachineId)
+bool UIMediumItem::releaseFrom(const QUuid &aMachineId)
 {
     /* Open session: */
-    CSession session = vboxGlobal().openSession(strMachineId);
+    CSession session = vboxGlobal().openSession(aMachineId);
     if (session.isNull())
         return false;
@@ -323,5 +323,5 @@
     /* Remember some of hard-disk attributes: */
     CMedium hardDisk = medium().medium();
-    QString strMediumID = id();
+    QUuid uMediumID = id();
 
     /* Propose to remove medium storage: */
@@ -338,5 +338,5 @@
 
     /* Remove UIMedium finally: */
-    vboxGlobal().deleteMedium(strMediumID);
+    vboxGlobal().deleteMedium(uMediumID);
 
     /* True by default: */
@@ -450,5 +450,5 @@
     /* Remember some of optical-disk attributes: */
     CMedium image = medium().medium();
-    QString strMediumID = id();
+    QUuid uMediumID = id();
 
     /* Close optical-disk: */
@@ -461,5 +461,5 @@
 
     /* Remove UIMedium finally: */
-    vboxGlobal().deleteMedium(strMediumID);
+    vboxGlobal().deleteMedium(uMediumID);
 
     /* True by default: */
@@ -521,5 +521,5 @@
     /* Remember some of floppy-disk attributes: */
     CMedium image = medium().medium();
-    QString strMediumID = id();
+    QUuid uMediumID = id();
 
     /* Close floppy-disk: */
@@ -532,5 +532,5 @@
 
     /* Remove UIMedium finally: */
-    vboxGlobal().deleteMedium(strMediumID);
+    vboxGlobal().deleteMedium(uMediumID);
 
     /* True by default: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumItem.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumItem.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumItem.h	(revision 74878)
@@ -68,5 +68,5 @@
 
     /** Returns QString <i>ID</i> of the wrapped UIMedium. */
-    QString id() const { return m_guiMedium.id(); }
+    QUuid id() const { return m_guiMedium.id(); }
     /** Returns QString <i>location</i> of the wrapped UIMedium. */
     QString location() const { return m_guiMedium.location(); }
@@ -86,5 +86,5 @@
 
     /** Returns a vector of IDs of all machines wrapped UIMedium is attached to. */
-    const QList<QString> &machineIds() const { return m_guiMedium.machineIds(); }
+    const QList<QUuid> &machineIds() const { return m_guiMedium.machineIds(); }
     /** Returns QString <i>usage</i> of the wrapped UIMedium. */
     QString usage() const { return m_guiMedium.usage(); }
@@ -111,5 +111,5 @@
 
     /** Releases UIMedium wrapped by <i>this</i> item from virtual machine with @a strMachineId. */
-    bool releaseFrom(const QString &strMachineId);
+    bool releaseFrom(const QUuid &aMachineId);
 
     /** Formats field text. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp	(revision 74878)
@@ -68,11 +68,11 @@
 public:
     /** Constructor accepting @a strID to compare with. */
-    CheckIfSuitableByID(const QString &strID) : m_strID(strID) {}
+    CheckIfSuitableByID(const QUuid &aID) : m_uID(aID) {}
 
 private:
     /** Determines whether passed UIMediumItem is suitable by @a strID. */
-    bool isItSuitable(UIMediumItem *pItem) const { return pItem->id() == m_strID; }
+    bool isItSuitable(UIMediumItem *pItem) const { return pItem->id() == m_uID; }
     /** Holds the @a strID to compare to. */
-    QString m_strID;
+    QUuid m_uID;
 };
 
@@ -383,8 +383,8 @@
 }
 
-void UIMediumManagerWidget::sltHandleMediumCreated(const QString &strMediumID)
+void UIMediumManagerWidget::sltHandleMediumCreated(const QUuid &aMediumID)
 {
     /* Search for corresponding medium: */
-    UIMedium medium = vboxGlobal().medium(strMediumID);
+    UIMedium medium = vboxGlobal().medium(aMediumID);
 
     /* Ignore non-interesting media: */
@@ -414,8 +414,8 @@
 }
 
-void UIMediumManagerWidget::sltHandleMediumDeleted(const QString &strMediumID)
+void UIMediumManagerWidget::sltHandleMediumDeleted(const QUuid &aMediumID)
 {
     /* Make sure corresponding medium-item deleted: */
-    deleteMediumItem(strMediumID);
+    deleteMediumItem(aMediumID);
 }
 
@@ -459,8 +459,8 @@
 }
 
-void UIMediumManagerWidget::sltHandleMediumEnumerated(const QString &strMediumID)
+void UIMediumManagerWidget::sltHandleMediumEnumerated(const QUuid &aMediumID)
 {
     /* Search for corresponding medium: */
-    UIMedium medium = vboxGlobal().medium(strMediumID);
+    UIMedium medium = vboxGlobal().medium(aMediumID);
 
     /* Ignore non-interesting media: */
@@ -920,9 +920,9 @@
     /* Remember current medium-items: */
     if (UIMediumItem *pMediumItem = mediumItem(UIMediumDeviceType_HardDisk))
-        m_strCurrentIdHD = pMediumItem->id();
+        m_uCurrentIdHD = pMediumItem->id();
     if (UIMediumItem *pMediumItem = mediumItem(UIMediumDeviceType_DVD))
-        m_strCurrentIdCD = pMediumItem->id();
+        m_uCurrentIdCD = pMediumItem->id();
     if (UIMediumItem *pMediumItem = mediumItem(UIMediumDeviceType_Floppy))
-        m_strCurrentIdFD = pMediumItem->id();
+        m_uCurrentIdFD = pMediumItem->id();
 
     /* Clear tree-widgets: */
@@ -948,6 +948,6 @@
     /* Create medium-items (do not change current one): */
     m_fPreventChangeCurrentItem = true;
-    foreach (const QString &strMediumID, vboxGlobal().mediumIDs())
-        sltHandleMediumCreated(strMediumID);
+    foreach (const QUuid &uMediumID, vboxGlobal().mediumIDs())
+        sltHandleMediumCreated(uMediumID);
     m_fPreventChangeCurrentItem = false;
 
@@ -1144,8 +1144,8 @@
                 if (!pMediumItem)
                     break;
-                if (pMediumItem->id() == m_strCurrentIdHD)
+                if (pMediumItem->id() == m_uCurrentIdHD)
                 {
                     setCurrentItem(pTreeWidget, pMediumItem);
-                    m_strCurrentIdHD = QString();
+                    m_uCurrentIdHD = QUuid();
                 }
             }
@@ -1164,9 +1164,9 @@
                 if (!pMediumItem)
                     break;
-                LogRel2(("UIMediumManager: Optical medium-item with ID={%s} created.\n", medium.id().toUtf8().constData()));
-                if (pMediumItem->id() == m_strCurrentIdCD)
+                LogRel2(("UIMediumManager: Optical medium-item with ID={%s} created.\n", medium.id().toString().toUtf8().constData()));
+                if (pMediumItem->id() == m_uCurrentIdCD)
                 {
                     setCurrentItem(pTreeWidget, pMediumItem);
-                    m_strCurrentIdCD = QString();
+                    m_uCurrentIdCD = QUuid();
                 }
             }
@@ -1185,9 +1185,9 @@
                 if (!pMediumItem)
                     break;
-                LogRel2(("UIMediumManager: Floppy medium-item with ID={%s} created.\n", medium.id().toUtf8().constData()));
-                if (pMediumItem->id() == m_strCurrentIdFD)
+                LogRel2(("UIMediumManager: Floppy medium-item with ID={%s} created.\n", medium.id().toString().toUtf8().constData()));
+                if (pMediumItem->id() == m_uCurrentIdFD)
                 {
                     setCurrentItem(pTreeWidget, pMediumItem);
-                    m_strCurrentIdFD = QString();
+                    m_uCurrentIdFD = QUuid();
                 }
             }
@@ -1238,5 +1238,5 @@
                     UIMedium parentMedium = vboxGlobal().medium(medium.parentID());
                     if (parentMedium.isNull())
-                        AssertMsgFailed(("Parent medium with ID={%s} was not found!\n", medium.parentID().toUtf8().constData()));
+                        AssertMsgFailed(("Parent medium with ID={%s} was not found!\n", medium.parentID().toString().toUtf8().constData()));
                     /* Try to create parent medium-item: */
                     else
@@ -1247,5 +1247,5 @@
                 {
                     pMediumItem = new UIMediumItemHD(medium, pParentMediumItem);
-                    LogRel2(("UIMediumManager: Child hard-disk medium-item with ID={%s} created.\n", medium.id().toUtf8().constData()));
+                    LogRel2(("UIMediumManager: Child hard-disk medium-item with ID={%s} created.\n", medium.id().toString().toUtf8().constData()));
                 }
             }
@@ -1254,5 +1254,5 @@
             {
                 pMediumItem = new UIMediumItemHD(medium, pTreeWidget);
-                LogRel2(("UIMediumManager: Root hard-disk medium-item with ID={%s} created.\n", medium.id().toUtf8().constData()));
+                LogRel2(("UIMediumManager: Root hard-disk medium-item with ID={%s} created.\n", medium.id().toString().toUtf8().constData()));
             }
         }
@@ -1284,5 +1284,5 @@
     /* Update medium-item: */
     pMediumItem->setMedium(medium);
-    LogRel2(("UIMediumManager: Medium-item with ID={%s} updated.\n", medium.id().toUtf8().constData()));
+    LogRel2(("UIMediumManager: Medium-item with ID={%s} updated.\n", medium.id().toString().toUtf8().constData()));
 
     /* Update tab-icons: */
@@ -1294,5 +1294,5 @@
 }
 
-void UIMediumManagerWidget::deleteMediumItem(const QString &strMediumID)
+void UIMediumManagerWidget::deleteMediumItem(const QUuid &aMediumID)
 {
     /* Search for corresponding tree-widget: */
@@ -1306,5 +1306,5 @@
         pTreeWidget = treeWidget(type);
         /* Search for existing medium-item: */
-        pMediumItem = searchItem(pTreeWidget, CheckIfSuitableByID(strMediumID));
+        pMediumItem = searchItem(pTreeWidget, CheckIfSuitableByID(aMediumID));
         if (pMediumItem)
             break;
@@ -1320,5 +1320,5 @@
     /* Delete medium-item: */
     delete pMediumItem;
-    LogRel2(("UIMediumManager: Medium-item with ID={%s} deleted.\n", strMediumID.toUtf8().constData()));
+    LogRel2(("UIMediumManager: Medium-item with ID={%s} deleted.\n", aMediumID.toString().toUtf8().constData()));
 
     /* If there is no current medium-item now selected
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h	(revision 74878)
@@ -148,7 +148,7 @@
       * @{ */
         /** Handles VBoxGlobal::sigMediumCreated signal. */
-        void sltHandleMediumCreated(const QString &strMediumID);
+        void sltHandleMediumCreated(const QUuid &aMediumID);
         /** Handles VBoxGlobal::sigMediumDeleted signal. */
-        void sltHandleMediumDeleted(const QString &strMediumID);
+        void sltHandleMediumDeleted(const QUuid &aMediumID);
     /** @} */
 
@@ -158,5 +158,5 @@
         void sltHandleMediumEnumerationStart();
         /** Handles VBoxGlobal::sigMediumEnumerated signal. */
-        void sltHandleMediumEnumerated(const QString &strMediumID);
+        void sltHandleMediumEnumerated(const QUuid &aMediumID);
         /** Handles VBoxGlobal::sigMediumEnumerationFinished signal. */
         void sltHandleMediumEnumerationFinish();
@@ -249,5 +249,5 @@
         void updateMediumItem(const UIMedium &medium);
         /** Deletes UIMediumItem for corresponding @a strMediumID. */
-        void deleteMediumItem(const QString &strMediumID);
+        void deleteMediumItem(const QUuid &aMediumID);
 
         /** Returns tab for passed medium @a type. */
@@ -327,9 +327,9 @@
         const QIcon                  m_iconFD;
         /** Holds current hard-drive tree-view item ID. */
-        QString                      m_strCurrentIdHD;
+        QUuid                        m_uCurrentIdHD;
         /** Holds current optical-disk tree-view item ID. */
-        QString                      m_strCurrentIdCD;
+        QUuid                        m_uCurrentIdCD;
         /** Holds current floppy-disk tree-view item ID. */
-        QString                      m_strCurrentIdFD;
+        QUuid                        m_uCurrentIdFD;
     /** @} */
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSelector.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSelector.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSelector.cpp	(revision 74878)
@@ -171,7 +171,7 @@
 }
 
-QStringList UIMediumSelector::selectedMediumIds() const
-{
-    QStringList selectedIds;
+QList<QUuid> UIMediumSelector::selectedMediumIds() const
+{
+    QList<QUuid> selectedIds;
     if (!m_pTreeWidget)
         return selectedIds;
@@ -365,5 +365,5 @@
             UIMedium parentMedium = vboxGlobal().medium(medium.parentID());
             if (parentMedium.isNull())
-                AssertMsgFailed(("Parent medium with ID={%s} was not found!\n", medium.parentID().toUtf8().constData()));
+                AssertMsgFailed(("Parent medium with ID={%s} was not found!\n", medium.parentID().toString().toUtf8().constData()));
             /* Try to create parent medium-item: */
             else
@@ -373,8 +373,8 @@
         {
             pMediumItem = new UIMediumItemHD(medium, pParentMediumItem);
-            LogRel2(("UIMediumManager: Child hard-disk medium-item with ID={%s} created.\n", medium.id().toUtf8().constData()));
+            LogRel2(("UIMediumManager: Child hard-disk medium-item with ID={%s} created.\n", medium.id().toString().toUtf8().constData()));
         }
         else
-            AssertMsgFailed(("Parent medium with ID={%s} could not be created!\n", medium.parentID().toUtf8().constData()));
+            AssertMsgFailed(("Parent medium with ID={%s} could not be created!\n", medium.parentID().toString().toUtf8().constData()));
     }
 
@@ -383,10 +383,10 @@
     {
         pMediumItem = new UIMediumItemHD(medium, pParent);
-        LogRel2(("UIMediumManager: Root hard-disk medium-item with ID={%s} created.\n", medium.id().toUtf8().constData()));
+        LogRel2(("UIMediumManager: Root hard-disk medium-item with ID={%s} created.\n", medium.id().toString().toUtf8().constData()));
     }
     return pMediumItem;
 }
 
-void UIMediumSelector::restoreSelection(const QStringList &selectedMediums, QVector<UIMediumItem*> &mediumList)
+void UIMediumSelector::restoreSelection(const QList<QUuid> &selectedMediums, QVector<UIMediumItem*> &mediumList)
 {
     if (!m_pTreeWidget)
@@ -475,9 +475,9 @@
 {
     QString strDefaultMachineFolder = vboxGlobal().virtualBox().GetSystemProperties().GetDefaultMachineFolder();
-    QString strMediumID = vboxGlobal().openMediumWithFileOpenDialog(m_enmMediumType, this, strDefaultMachineFolder);
-    if (strMediumID.isEmpty())
+    QUuid uMediumID = vboxGlobal().openMediumWithFileOpenDialog(m_enmMediumType, this, strDefaultMachineFolder);
+    if (uMediumID.isNull())
         return;
     repopulateTreeWidget();
-    selectMedium(strMediumID);
+    selectMedium(uMediumID);
 
 }
@@ -545,9 +545,9 @@
 }
 
-void UIMediumSelector::selectMedium(const QString &strMediumID)
+void UIMediumSelector::selectMedium(const QUuid &aMediumID)
 {
     if (!m_pTreeWidget)
         return;
-    UIMediumItem *pMediumItem = searchItem(0, strMediumID);
+    UIMediumItem *pMediumItem = searchItem(0, aMediumID);
     if (pMediumItem)
     {
@@ -623,5 +623,5 @@
     /* Cache the currently selected items: */
     QList<QTreeWidgetItem*> selectedItems = m_pTreeWidget->selectedItems();
-    QStringList selectedMedia = selectedMediumIds();
+    QList<QUuid> selectedMedia = selectedMediumIds();
     /* uuid list of selected items: */
     /* Reset the related data structure: */
@@ -632,7 +632,7 @@
     QVector<UIMediumItem*> menuItemVector;
 
-    foreach (const QString &strMediumID, vboxGlobal().mediumIDs())
-    {
-        UIMedium medium = vboxGlobal().medium(strMediumID);
+    foreach (const QUuid &uMediumID, vboxGlobal().mediumIDs())
+    {
+        UIMedium medium = vboxGlobal().medium(uMediumID);
         //printf("name %s\n", qPrintable(medium.name()));
         if (medium.type() == m_enmMediumType)
@@ -697,5 +697,5 @@
 }
 
-UIMediumItem* UIMediumSelector::searchItem(const QTreeWidgetItem *pParent, const QString &mediumId)
+UIMediumItem* UIMediumSelector::searchItem(const QTreeWidgetItem *pParent, const QUuid &mediumId)
 {
     if (!m_pTreeWidget)
@@ -759,5 +759,5 @@
             strMedium = m_mediumItemList[i]->medium().name();
         else if(searchType == UIMediumSearchWidget::SearchByUUID)
-            strMedium = m_mediumItemList[i]->medium().id();
+            strMedium = m_mediumItemList[i]->medium().id().toString();
         if (strMedium.isEmpty())
             continue;
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSelector.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSelector.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSelector.h	(revision 74878)
@@ -50,5 +50,5 @@
     UIMediumSelector(UIMediumDeviceType enmMediumType, const QString &machineName = QString(),
                      const QString &machineSettigFilePath = QString(), QWidget *pParent = 0);
-    QStringList selectedMediumIds() const;
+    QList<QUuid> selectedMediumIds() const;
 
 protected:
@@ -93,12 +93,12 @@
     void          updateOkButton();
     UIMediumItem* addTreeItem(const UIMedium &medium, QITreeWidgetItem *pParent);
-    void          restoreSelection(const QStringList &selectedMediums, QVector<UIMediumItem*> &mediumList);
+    void          restoreSelection(const QList<QUuid> &selectedMediums, QVector<UIMediumItem*> &mediumList);
     /** Recursively create the hard disk hierarchy under the tree widget */
     UIMediumItem* createHardDiskItem(const UIMedium &medium, QITreeWidgetItem *pParent);
-    UIMediumItem* searchItem(const QTreeWidgetItem *pParent, const QString &mediumId);
+    UIMediumItem* searchItem(const QTreeWidgetItem *pParent, const QUuid &mediumId);
     void          performMediumSearch();
     /** Remember the default foreground brush of the tree so that we can reset tree items' foreground later */
     void          saveDefaultForeground();
-    void          selectMedium(const QString &strMediumID);
+    void          selectMedium(const QUuid &aMediumID);
 
     QVBoxLayout          *m_pMainLayout;
Index: trunk/src/VBox/Frontends/VirtualBox/src/platform/UIDesktopServices.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/platform/UIDesktopServices.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/platform/UIDesktopServices.h	(revision 74878)
@@ -19,4 +19,7 @@
 #define ___UIDesktopServices_h___
 
+/* Qt includes */
+#include <QUuid>
+
 /* Qt forward declarations */
 class QString;
@@ -25,5 +28,5 @@
 {
 public:
-    static bool createMachineShortcut(const QString &strSrcFile, const QString &strDstPath, const QString &strName, const QString &strUuid);
+    static bool createMachineShortcut(const QString &strSrcFile, const QString &strDstPath, const QString &strName, const QUuid &aUuid);
     static bool openInFileManager(const QString &strFile);
 };
Index: trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIDesktopServices_darwin.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIDesktopServices_darwin.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIDesktopServices_darwin.cpp	(revision 74878)
@@ -24,10 +24,10 @@
 #include <QString>
 
-bool UIDesktopServices::createMachineShortcut(const QString &strSrcFile, const QString &strDstPath, const QString &strName, const QString &strUuid)
+bool UIDesktopServices::createMachineShortcut(const QString &strSrcFile, const QString &strDstPath, const QString &strName, const QUuid &aUuid)
 {
     return ::darwinCreateMachineShortcut(::darwinToNativeString(strSrcFile.toUtf8().constData()),
                                          ::darwinToNativeString(strDstPath.toUtf8().constData()),
                                          ::darwinToNativeString(strName.toUtf8().constData()),
-                                         ::darwinToNativeString(strUuid.toUtf8().constData()));
+                                         ::darwinToNativeString(aUuid.toString().toUtf8().constData()));
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/platform/win/UIDesktopServices_win.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/platform/win/UIDesktopServices_win.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/platform/win/UIDesktopServices_win.cpp	(revision 74878)
@@ -26,4 +26,5 @@
 # include <QDir>
 # include <QCoreApplication>
+# include <QUuid>
 
 /* System includes */
@@ -33,5 +34,5 @@
 
 
-bool UIDesktopServices::createMachineShortcut(const QString & /* strSrcFile */, const QString &strDstPath, const QString &strName, const QString &strUuid)
+bool UIDesktopServices::createMachineShortcut(const QString & /* strSrcFile */, const QString &strDstPath, const QString &strName, const QUuid &aUuid)
 {
     IShellLink *pShl = NULL;
@@ -51,5 +52,5 @@
         if (FAILED(rc))
             break;
-        QString strArgs = QString("--comment \"%1\" --startvm \"%2\"").arg(strName).arg(strUuid);
+        QString strArgs = QString("--comment \"%1\" --startvm \"%2\"").arg(strName).arg(aUuid.toString());
         rc = pShl->SetArguments(strArgs.utf16());
         if (FAILED(rc))
Index: trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/UIDesktopServices_x11.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/UIDesktopServices_x11.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/UIDesktopServices_x11.cpp	(revision 74878)
@@ -34,5 +34,5 @@
 
 
-bool UIDesktopServices::createMachineShortcut(const QString & /* strSrcFile */, const QString &strDstPath, const QString &strName, const QString &strUuid)
+bool UIDesktopServices::createMachineShortcut(const QString & /* strSrcFile */, const QString &strDstPath, const QString &strName, const QUuid &aUuid)
 {
     QFile link(strDstPath + QDir::separator() + strName + ".desktop");
@@ -48,5 +48,5 @@
             << "Comment=Starts the VirtualBox machine " << strName << endl
             << "Type=Application" << endl
-            << "Exec=" << QCoreApplication::applicationFilePath() << " --comment \"" << strName << "\" --startvm \"" << strUuid << "\"" << endl
+            << "Exec=" << QCoreApplication::applicationFilePath() << " --comment \"" << strName << "\" --startvm \"" << aUuid.toString() << "\"" << endl
             << "Icon=virtualbox-vbox.png" << endl;
         /* This would be a real file link entry, but then we could also simply
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp	(revision 74878)
@@ -393,5 +393,5 @@
 #endif /* Q_OS_WIN */
      /** Identifier returned by AttachFramebuffer. Used in DetachFramebuffer. */
-     QString m_strFramebufferId;
+     QUuid m_uFramebufferId;
 };
 
@@ -615,5 +615,5 @@
 void UIFrameBufferPrivate::attach()
 {
-    m_strFramebufferId = display().AttachFramebuffer(m_uScreenId, CFramebuffer(this));
+    m_uFramebufferId = display().AttachFramebuffer(m_uScreenId, CFramebuffer(this));
 }
 
@@ -623,6 +623,6 @@
     if (!frameBuffer.isNull())
     {
-        display().DetachFramebuffer(m_uScreenId, m_strFramebufferId);
-        m_strFramebufferId.clear();
+        display().DetachFramebuffer(m_uScreenId, m_uFramebufferId);
+        m_uFramebufferId = QUuid();
     }
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp	(revision 74878)
@@ -1267,8 +1267,8 @@
 }
 
-void UIIndicatorsPool::sltHandleConfigurationChange(const QString &strMachineID)
+void UIIndicatorsPool::sltHandleConfigurationChange(const QUuid &aMachineID)
 {
     /* Skip unrelated machine IDs: */
-    if (vboxGlobal().managedVMUuid() != strMachineID)
+    if (vboxGlobal().managedVMUuid() != aMachineID)
         return;
 
@@ -1348,6 +1348,6 @@
 {
     /* Listen for the status-bar configuration changes: */
-    connect(gEDataManager, SIGNAL(sigStatusBarConfigurationChange(const QString&)),
-            this, SLOT(sltHandleConfigurationChange(const QString&)));
+    connect(gEDataManager, SIGNAL(sigStatusBarConfigurationChange(const QUuid &)),
+            this, SLOT(sltHandleConfigurationChange(const QUuid &)));
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.h	(revision 74878)
@@ -67,5 +67,5 @@
 
     /** Handles configuration change. */
-    void sltHandleConfigurationChange(const QString &strMachineID);
+    void sltHandleConfigurationChange(const QUuid &aMachineID);
 
     /** Handles indicator-states auto-update. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachine.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachine.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachine.cpp	(revision 74878)
@@ -43,5 +43,5 @@
 
 /* static */
-bool UIMachine::startMachine(const QString &strID)
+bool UIMachine::startMachine(const QUuid &aID)
 {
     /* Make sure machine is not created: */
@@ -52,5 +52,5 @@
     {
         /* Create temporary session: */
-        CSession session = vboxGlobal().openSession(strID, KLockType_VM);
+        CSession session = vboxGlobal().openSession(aID, KLockType_VM);
         if (session.isNull())
             return false;
@@ -82,5 +82,5 @@
     {
         /* Get corresponding machine: */
-        CMachine machine = vboxGlobal().virtualBox().FindMachine(vboxGlobal().managedVMUuid());
+        CMachine machine = vboxGlobal().virtualBox().FindMachine(vboxGlobal().managedVMUuid().toString());
         AssertMsgReturn(!machine.isNull(), ("VBoxGlobal::managedVMUuid() should have filter that case before!\n"), false);
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachine.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachine.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachine.h	(revision 74878)
@@ -49,5 +49,5 @@
     /** Static factory to start machine with passed @a strID.
       * @return true if machine was started, false otherwise. */
-    static bool startMachine(const QString &strID);
+    static bool startMachine(const QUuid &aID);
     /** Static constructor. */
     static bool create();
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 74878)
@@ -121,9 +121,9 @@
 struct USBTarget
 {
-    USBTarget() : attach(false), id(QString()) {}
-    USBTarget(bool fAttach, const QString &strId)
-        : attach(fAttach), id(strId) {}
+    USBTarget() : attach(false), id(QUuid()) {}
+    USBTarget(bool fAttach, const QUuid &aId)
+        : attach(fAttach), id(aId) {}
     bool attach;
-    QString id;
+    QUuid id;
 };
 Q_DECLARE_METATYPE(USBTarget);
@@ -1751,7 +1751,7 @@
     if (fDialogAccepted)
     {
-        QString strSnapshotId;
+        QUuid uSnapshotId;
         /* Prepare the take-snapshot progress: */
-        CProgress progress = machine().TakeSnapshot(strSnapshotName, strSnapshotDescription, true, strSnapshotId);
+        CProgress progress = machine().TakeSnapshot(strSnapshotName, strSnapshotDescription, true, uSnapshotId);
         if (machine().isOk())
         {
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp	(revision 74878)
@@ -501,8 +501,8 @@
 }
 
-void UIMachineView::sltHandleScaleFactorChange(const QString &strMachineID)
+void UIMachineView::sltHandleScaleFactorChange(const QUuid &aMachineID)
 {
     /* Skip unrelated machine IDs: */
-    if (strMachineID != vboxGlobal().managedVMUuid())
+    if (aMachineID != vboxGlobal().managedVMUuid())
         return;
 
@@ -549,8 +549,8 @@
 }
 
-void UIMachineView::sltHandleScalingOptimizationChange(const QString &strMachineID)
+void UIMachineView::sltHandleScalingOptimizationChange(const QUuid &aMachineID)
 {
     /* Skip unrelated machine IDs: */
-    if (strMachineID != vboxGlobal().managedVMUuid())
+    if (aMachineID != vboxGlobal().managedVMUuid())
         return;
 
@@ -826,9 +826,9 @@
             SLOT(sltDesktopResized()));
     /* Scale-factor change: */
-    connect(gEDataManager, SIGNAL(sigScaleFactorChange(const QString&)),
-            this, SLOT(sltHandleScaleFactorChange(const QString&)));
+    connect(gEDataManager, SIGNAL(sigScaleFactorChange(const QUuid &)),
+            this, SLOT(sltHandleScaleFactorChange(const QUuid &)));
     /* Scaling-optimization change: */
-    connect(gEDataManager, SIGNAL(sigScalingOptimizationTypeChange(const QString&)),
-            this, SLOT(sltHandleScalingOptimizationChange(const QString&)));
+    connect(gEDataManager, SIGNAL(sigScalingOptimizationTypeChange(const QUuid &)),
+            this, SLOT(sltHandleScalingOptimizationChange(const QUuid &)));
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.h	(revision 74878)
@@ -127,8 +127,8 @@
 
     /** Handles the scale-factor change. */
-    void sltHandleScaleFactorChange(const QString &strMachineID);
+    void sltHandleScaleFactorChange(const QUuid &aMachineID);
 
     /** Handles the scaling-optimization change. */
-    void sltHandleScalingOptimizationChange(const QString &strMachineID);
+    void sltHandleScalingOptimizationChange(const QUuid &aMachineID);
 
     /* Console callback handlers: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp	(revision 74878)
@@ -323,5 +323,5 @@
     {
         /* Execute asynchronously and leave: */
-        QProcess::startDetached(strScript, QStringList() << machine().GetId());
+        QProcess::startDetached(strScript, QStringList() << machine().GetId().toString());
         return;
     }
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 74878)
@@ -204,7 +204,7 @@
     /* Apply ad-hoc reconfigurations from the command line: */
     if (vboxGlobal().hasFloppyImageToMount())
-        mountAdHocImage(KDeviceType_Floppy, UIMediumDeviceType_Floppy, vboxGlobal().getFloppyImage());
+        mountAdHocImage(KDeviceType_Floppy, UIMediumDeviceType_Floppy, vboxGlobal().getFloppyImage().toString());
     if (vboxGlobal().hasDvdImageToMount())
-        mountAdHocImage(KDeviceType_DVD, UIMediumDeviceType_DVD, vboxGlobal().getDvdImage());
+        mountAdHocImage(KDeviceType_DVD, UIMediumDeviceType_DVD, vboxGlobal().getDvdImage().toString());
 
     /* Power UP if this is NOT separate process: */
@@ -425,10 +425,10 @@
         /* Search for corresponding VM: */
         CVirtualBox vbox = vboxGlobal().virtualBox();
-        const QString strMachineID = vboxGlobal().managedVMUuid();
-        const CMachine mach = vbox.FindMachine(strMachineID);
+        const QUuid uMachineID = vboxGlobal().managedVMUuid();
+        const CMachine mach = vbox.FindMachine(uMachineID.toString());
         if (!vbox.isOk() || mach.isNull())
         {
             /* Unable to find VM: */
-            msgCenter().cannotFindMachineById(vbox, strMachineID);
+            msgCenter().cannotFindMachineById(vbox, uMachineID);
             break;
         }
@@ -598,8 +598,8 @@
 
 #ifdef RT_OS_DARWIN
-void UISession::sltHandleMenuBarConfigurationChange(const QString &strMachineID)
+void UISession::sltHandleMenuBarConfigurationChange(const QUuid &aMachineID)
 {
     /* Skip unrelated machine IDs: */
-    if (vboxGlobal().managedVMUuid() != strMachineID)
+    if (vboxGlobal().managedVMUuid() != aMachineID)
         return;
 
@@ -1254,5 +1254,5 @@
     {
         /* Get machine ID: */
-        const QString strMachineID = vboxGlobal().managedVMUuid();
+        const QUuid uMachineID = vboxGlobal().managedVMUuid();
 
         /* Prepare machine-window icon: */
@@ -1272,13 +1272,13 @@
 #ifndef VBOX_WS_MAC
         /* Load user's machine-window name postfix: */
-        m_strMachineWindowNamePostfix = gEDataManager->machineWindowNamePostfix(strMachineID);
+        m_strMachineWindowNamePostfix = gEDataManager->machineWindowNamePostfix(uMachineID);
 #endif
 
         /* Is there should be First RUN Wizard? */
-        m_fIsFirstTimeStarted = gEDataManager->machineFirstTimeStarted(strMachineID);
+        m_fIsFirstTimeStarted = gEDataManager->machineFirstTimeStarted(uMachineID);
 
         /* Should guest autoresize? */
         QAction *pGuestAutoresizeSwitch = actionPool()->action(UIActionIndexRT_M_View_T_GuestAutoresize);
-        pGuestAutoresizeSwitch->setChecked(gEDataManager->guestScreenAutoResizeEnabled(strMachineID));
+        pGuestAutoresizeSwitch->setChecked(gEDataManager->guestScreenAutoResizeEnabled(uMachineID));
 
 #ifndef VBOX_WS_MAC
@@ -1286,5 +1286,5 @@
         {
             const bool fEnabledGlobally = !gEDataManager->guiFeatureEnabled(GUIFeatureType_NoMenuBar);
-            const bool fEnabledForMachine = gEDataManager->menuBarEnabled(strMachineID);
+            const bool fEnabledForMachine = gEDataManager->menuBarEnabled(uMachineID);
             const bool fEnabled = fEnabledGlobally && fEnabledForMachine;
             QAction *pActionMenuBarSettings = actionPool()->action(UIActionIndexRT_M_View_M_MenuBar_S_Settings);
@@ -1300,5 +1300,5 @@
         {
             const bool fEnabledGlobally = !gEDataManager->guiFeatureEnabled(GUIFeatureType_NoStatusBar);
-            const bool fEnabledForMachine = gEDataManager->statusBarEnabled(strMachineID);
+            const bool fEnabledForMachine = gEDataManager->statusBarEnabled(uMachineID);
             const bool fEnabled = fEnabledGlobally && fEnabledForMachine;
             QAction *pActionStatusBarSettings = actionPool()->action(UIActionIndexRT_M_View_M_StatusBar_S_Settings);
@@ -1325,6 +1325,6 @@
 
         /* What is the default close action and the restricted are? */
-        m_defaultCloseAction = gEDataManager->defaultMachineCloseAction(strMachineID);
-        m_restrictedCloseActions = gEDataManager->restrictedMachineCloseActions(strMachineID);
+        m_defaultCloseAction = gEDataManager->defaultMachineCloseAction(uMachineID);
+        m_restrictedCloseActions = gEDataManager->restrictedMachineCloseActions(uMachineID);
         m_fAllCloseActionsRestricted =  (!vboxGlobal().isSeparateProcess() || (m_restrictedCloseActions & MachineCloseAction_Detach))
                                      && (m_restrictedCloseActions & MachineCloseAction_SaveState)
@@ -1926,9 +1926,9 @@
 
         /* Make sure medium ID is valid: */
-        const QString strMediumId = comMedium.GetId();
-        AssertReturn(!strMediumId.isNull(), false);
+        const QUuid uMediumId = comMedium.GetId();
+        AssertReturn(!uMediumId.isNull(), false);
 
         /* Try to find UIMedium among cached: */
-        guiMedium = vboxGlobal().medium(strMediumId);
+        guiMedium = vboxGlobal().medium(uMediumId);
         if (guiMedium.isNull())
         {
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h	(revision 74878)
@@ -347,5 +347,5 @@
 #ifdef RT_OS_DARWIN
     /** Mac OS X: Handles menu-bar configuration-change. */
-    void sltHandleMenuBarConfigurationChange(const QString &strMachineID);
+    void sltHandleMenuBarConfigurationChange(const QUuid &aMachineID);
 #endif /* RT_OS_DARWIN */
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp	(revision 74878)
@@ -138,8 +138,8 @@
 
 #ifndef RT_OS_DARWIN
-void UIMachineWindowNormal::sltHandleMenuBarConfigurationChange(const QString &strMachineID)
+void UIMachineWindowNormal::sltHandleMenuBarConfigurationChange(const QUuid &aMachineID)
 {
     /* Skip unrelated machine IDs: */
-    if (vboxGlobal().managedVMUuid() != strMachineID)
+    if (vboxGlobal().managedVMUuid() != aMachineID)
         return;
 
@@ -172,8 +172,8 @@
 #endif /* !RT_OS_DARWIN */
 
-void UIMachineWindowNormal::sltHandleStatusBarConfigurationChange(const QString &strMachineID)
+void UIMachineWindowNormal::sltHandleStatusBarConfigurationChange(const QUuid &aMachineID)
 {
     /* Skip unrelated machine IDs: */
-    if (vboxGlobal().managedVMUuid() != strMachineID)
+    if (vboxGlobal().managedVMUuid() != aMachineID)
         return;
 
@@ -306,6 +306,6 @@
         }
         /* Post-configure status-bar: */
-        connect(gEDataManager, SIGNAL(sigStatusBarConfigurationChange(const QString&)),
-                this, SLOT(sltHandleStatusBarConfigurationChange(const QString&)));
+        connect(gEDataManager, SIGNAL(sigStatusBarConfigurationChange(const QUuid &)),
+                this, SLOT(sltHandleStatusBarConfigurationChange(const QUuid &)));
 #ifdef VBOX_WS_MAC
         /* Make sure the status-bar is aware of action hovering: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.h	(revision 74878)
@@ -68,5 +68,5 @@
 #ifndef RT_OS_DARWIN
     /** Handles menu-bar configuration-change. */
-    void sltHandleMenuBarConfigurationChange(const QString &strMachineID);
+    void sltHandleMenuBarConfigurationChange(const QUuid &aMachineID);
     /** Handles menu-bar context-menu-request. */
     void sltHandleMenuBarContextMenuRequest(const QPoint &position);
@@ -74,5 +74,5 @@
 
     /** Handles status-bar configuration-change. */
-    void sltHandleStatusBarConfigurationChange(const QString &strMachineID);
+    void sltHandleStatusBarConfigurationChange(const QUuid &aMachineID);
     /** Handles status-bar context-menu-request. */
     void sltHandleStatusBarContextMenuRequest(const QPoint &position);
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 74878)
@@ -343,7 +343,7 @@
     /* Look for at least one inaccessible medium: */
     bool fIsThereAnyInaccessibleMedium = false;
-    foreach (const QString &strMediumID, vboxGlobal().mediumIDs())
-    {
-        if (vboxGlobal().medium(strMediumID).state() == KMediumState_Inaccessible)
+    foreach (const QUuid &uMediumID, vboxGlobal().mediumIDs())
+    {
+        if (vboxGlobal().medium(uMediumID).state() == KMediumState_Inaccessible)
         {
             fIsThereAnyInaccessibleMedium = true;
@@ -431,5 +431,5 @@
 #endif /* VBOX_WS_MAC */
 
-void UISelectorWindow::sltHandleStateChange(QString)
+void UISelectorWindow::sltHandleStateChange(const QUuid &)
 {
     /* Get current item: */
@@ -654,5 +654,5 @@
 
     /* Make sure this machine was NOT registered already: */
-    CMachine oldMachine = vbox.FindMachine(newMachine.GetId());
+    CMachine oldMachine = vbox.FindMachine(newMachine.GetId().toString());
     if (!oldMachine.isNull())
     {
@@ -667,5 +667,5 @@
 void UISelectorWindow::sltOpenMachineSettingsDialog(const QString &strCategoryRef /* = QString() */,
                                                     const QString &strControlRef /* = QString() */,
-                                                    const QString &strID /* = QString() */)
+                                                    const QUuid &aID /* = QString() */)
 {
     /* This slot should not be called when there is not selection: */
@@ -705,5 +705,5 @@
     /* Create and execute corresponding VM settings window: */
     UISettingsDialogMachine dialog(this,
-                                   QUuid(strID).isNull() ? currentItem()->id() : strID,
+                                   aID.isNull() ? currentItem()->id() : aID,
                                    strCategory, strControl);
     dialog.execute();
@@ -1119,5 +1119,5 @@
         QIManagerDialog *pLogViewerDialog = 0;
         /* Create and Show VM Log Viewer: */
-        if (!m_logViewers[pItem->machine().GetHardwareUUID()])
+        if (!m_logViewers[pItem->machine().GetHardwareUUID().toString()])
         {
             UIVMLogViewerDialogFactory dialogFactory(actionPool(), pItem->machine());
@@ -1125,5 +1125,5 @@
             if (pLogViewerDialog)
             {
-                m_logViewers[pItem->machine().GetHardwareUUID()] = pLogViewerDialog;
+                m_logViewers[pItem->machine().GetHardwareUUID().toString()] = pLogViewerDialog;
                 connect(pLogViewerDialog, &QIManagerDialog::sigClose,
                         this, &UISelectorWindow::sltCloseLogViewerWindow);
@@ -1132,5 +1132,5 @@
         else
         {
-            pLogViewerDialog = m_logViewers[pItem->machine().GetHardwareUUID()];
+            pLogViewerDialog = m_logViewers[pItem->machine().GetHardwareUUID().toString()];
         }
         if (pLogViewerDialog)
@@ -2238,6 +2238,6 @@
 
     /* VM desktop connections: */
-    connect(m_pPaneToolsMachine, SIGNAL(sigLinkClicked(const QString&, const QString&, const QString&)),
-            this, SLOT(sltOpenMachineSettingsDialog(const QString&, const QString&, const QString&)));
+    connect(m_pPaneToolsMachine, SIGNAL(sigLinkClicked(const QString&, const QString&, const QUuid&)),
+            this, SLOT(sltOpenMachineSettingsDialog(const QString&, const QString&, const QUuid&)));
 
     /* Global event handlers: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.h	(revision 74878)
@@ -118,5 +118,5 @@
       * @{ */
         /** Handles CVirtualBox event about state change for machine with @a strID. */
-        void sltHandleStateChange(QString strID);
+        void sltHandleStateChange(const QUuid &aID);
     /** @} */
 
@@ -163,5 +163,5 @@
         void sltOpenMachineSettingsDialog(const QString &strCategory = QString(),
                                           const QString &strControl = QString(),
-                                          const QString &strID = QString());
+                                          const QUuid &aID = QString());
         /** Handles call to open Clone Machine wizard. */
         void sltOpenCloneMachineWizard();
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/UIToolsPaneMachine.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/UIToolsPaneMachine.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/UIToolsPaneMachine.h	(revision 74878)
@@ -53,5 +53,5 @@
     void sigToggleFinished();
     /** Redirects signal from UIGDetails to UISelectorWindow. */
-    void sigLinkClicked(const QString &strCategory, const QString &strControl, const QString &strId);
+    void sigLinkClicked(const QString &strCategory, const QString &strControl, const QUuid &aId);
 
 public:
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVMItem.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVMItem.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVMItem.cpp	(revision 74878)
@@ -224,5 +224,5 @@
     bool needsResort = true;
 
-    m_strId = m_machine.GetId();
+    m_uId = m_machine.GetId();
     m_strSettingsFile = m_machine.GetSettingsFilePath();
 
@@ -270,9 +270,9 @@
         /* Also take restrictions into account: */
         if (   m_configurationAccessLevel != ConfigurationAccessLevel_Null
-            && !gEDataManager->machineReconfigurationEnabled(m_strId))
+            && !gEDataManager->machineReconfigurationEnabled(m_uId))
             m_configurationAccessLevel = ConfigurationAccessLevel_Null;
 
         /* Should we show details for this item? */
-        m_fHasDetails = gEDataManager->showMachineInSelectorDetails(m_strId);
+        m_fHasDetails = gEDataManager->showMachineInSelectorDetails(m_uId);
     }
     else
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVMItem.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVMItem.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVMItem.h	(revision 74878)
@@ -47,5 +47,5 @@
     QPixmap osPixmap(QSize *pLogicalSize = 0) const;
     QString osTypeId() const { return m_strOSTypeId; }
-    QString id() const { return m_strId; }
+    QUuid   id() const { return m_uId; }
 
     QString machineStateName() const;
@@ -93,5 +93,5 @@
 
     /* Cached machine data (to minimize server requests) */
-    QString m_strId;
+    QUuid m_uId;
     QString m_strSettingsFile;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItem.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItem.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItem.h	(revision 74878)
@@ -115,6 +115,6 @@
     virtual bool hasItems(UIGChooserItemType type = UIGChooserItemType_Any) const = 0;
     virtual void clearItems(UIGChooserItemType type = UIGChooserItemType_Any) = 0;
-    virtual void updateAll(const QString &strId) = 0;
-    virtual void removeAll(const QString &strId) = 0;
+    virtual void updateAll(const QUuid &aId) = 0;
+    virtual void removeAll(const QUuid &aId) = 0;
     virtual UIGChooserItem* searchForItem(const QString &strSearchTag, int iItemSearchFlags) = 0;
     virtual UIGChooserItemMachine* firstMachineItem() = 0;
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.cpp	(revision 74878)
@@ -259,9 +259,9 @@
 }
 
-bool UIGChooserItemGroup::isContainsMachine(const QString &strId) const
+bool UIGChooserItemGroup::isContainsMachine(const QUuid &aId) const
 {
     /* Check each machine-item: */
     foreach (UIGChooserItem *pItem, m_machineItems)
-        if (pItem->toMachineItem()->id() == strId)
+        if (pItem->toMachineItem()->id() == aId)
             return true;
     /* Found nothing? */
@@ -934,16 +934,16 @@
 }
 
-void UIGChooserItemGroup::updateAll(const QString &strId)
+void UIGChooserItemGroup::updateAll(const QUuid &aId)
 {
     /* Update all the required items recursively: */
     foreach (UIGChooserItem *pItem, items())
-        pItem->updateAll(strId);
-}
-
-void UIGChooserItemGroup::removeAll(const QString &strId)
+        pItem->updateAll(aId);
+}
+
+void UIGChooserItemGroup::removeAll(const QUuid &aId)
 {
     /* Remove all the required items recursively: */
     foreach (UIGChooserItem *pItem, items())
-        pItem->removeAll(strId);
+        pItem->removeAll(aId);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.h	(revision 74878)
@@ -79,5 +79,5 @@
 
     /* API: Children stuff: */
-    bool isContainsMachine(const QString &strId) const;
+    bool isContainsMachine(const QUuid &aId) const;
     bool isContainsLockedMachine();
 
@@ -143,6 +143,6 @@
     bool hasItems(UIGChooserItemType type = UIGChooserItemType_Any) const;
     void clearItems(UIGChooserItemType type = UIGChooserItemType_Any);
-    void updateAll(const QString &strId);
-    void removeAll(const QString &strId);
+    void updateAll(const QUuid &aId);
+    void removeAll(const QUuid &aId);
     UIGChooserItem* searchForItem(const QString &strSearchTag, int iItemSearchFlags);
     UIGChooserItemMachine* firstMachineItem();
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemMachine.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemMachine.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemMachine.cpp	(revision 74878)
@@ -544,8 +544,8 @@
 }
 
-void UIGChooserItemMachine::updateAll(const QString &strId)
+void UIGChooserItemMachine::updateAll(const QUuid &aId)
 {
     /* Skip other ids: */
-    if (id() != strId)
+    if (id() != aId)
         return;
 
@@ -563,8 +563,8 @@
 }
 
-void UIGChooserItemMachine::removeAll(const QString &strId)
+void UIGChooserItemMachine::removeAll(const QUuid &aId)
 {
     /* Skip wrong id: */
-    if (id() != strId)
+    if (id() != aId)
         return;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemMachine.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemMachine.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemMachine.h	(revision 74878)
@@ -125,6 +125,6 @@
     bool hasItems(UIGChooserItemType type) const;
     void clearItems(UIGChooserItemType type);
-    void updateAll(const QString &strId);
-    void removeAll(const QString &strId);
+    void updateAll(const QUuid &aId);
+    void removeAll(const QUuid &aId);
     UIGChooserItem* searchForItem(const QString &strSearchTag, int iItemSearchFlags);
     UIGChooserItemMachine* firstMachineItem();
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp	(revision 74878)
@@ -678,17 +678,17 @@
 }
 
-void UIGChooserModel::sltMachineStateChanged(QString strId, KMachineState)
+void UIGChooserModel::sltMachineStateChanged(const QUuid &aId, const KMachineState)
 {
     /* Update machine-items with passed id: */
-    mainRoot()->updateAll(strId);
-}
-
-void UIGChooserModel::sltMachineDataChanged(QString strId)
+    mainRoot()->updateAll(aId);
+}
+
+void UIGChooserModel::sltMachineDataChanged(const QUuid &aId)
 {
     /* Update machine-items with passed id: */
-    mainRoot()->updateAll(strId);
-}
-
-void UIGChooserModel::sltMachineRegistered(QString strId, bool fRegistered)
+    mainRoot()->updateAll(aId);
+}
+
+void UIGChooserModel::sltMachineRegistered(const QUuid &aId, const bool fRegistered)
 {
     /* New VM registered? */
@@ -696,7 +696,7 @@
     {
         /* Search for corresponding machine: */
-        CMachine machine = vboxGlobal().virtualBox().FindMachine(strId);
+        CMachine machine = vboxGlobal().virtualBox().FindMachine(aId.toString());
         /* Should we show this machine? */
-        if (gEDataManager->showMachineInSelectorChooser(strId))
+        if (gEDataManager->showMachineInSelectorChooser(aId))
         {
             /* Add new machine-item: */
@@ -706,5 +706,5 @@
             updateLayout();
             /* Change current-item only if VM was created from the GUI side: */
-            if (strId == m_strLastCreatedMachineId)
+            if (aId == m_uLastCreatedMachineId)
             {
                 setCurrentItem(mainRoot()->searchForItem(machine.GetName(),
@@ -718,5 +718,5 @@
     {
         /* Remove machine-items with passed id: */
-        mainRoot()->removeAll(strId);
+        mainRoot()->removeAll(aId);
         /* Update model: */
         cleanupGroupTree();
@@ -734,14 +734,14 @@
 }
 
-void UIGChooserModel::sltSessionStateChanged(QString strId, KSessionState)
+void UIGChooserModel::sltSessionStateChanged(const QUuid &aId, const KSessionState)
 {
     /* Update machine-items with passed id: */
-    mainRoot()->updateAll(strId);
-}
-
-void UIGChooserModel::sltSnapshotChanged(QString strId, QString)
+    mainRoot()->updateAll(aId);
+}
+
+void UIGChooserModel::sltSnapshotChanged(const QUuid &aId, const QUuid &)
 {
     /* Update machine-items with passed id: */
-    mainRoot()->updateAll(strId);
+    mainRoot()->updateAll(aId);
 }
 
@@ -936,5 +936,5 @@
      * on success for current-item handling: */
     if (pWizard->exec() == QDialog::Accepted)
-        m_strLastCreatedMachineId = pWizard->createdMachineId();
+        m_uLastCreatedMachineId = pWizard->createdMachineId();
 
     if (pWizard)
@@ -997,14 +997,14 @@
 }
 
-void UIGChooserModel::sltReloadMachine(const QString &strId)
+void UIGChooserModel::sltReloadMachine(const QUuid &aId)
 {
     /* Remove all the items first: */
-    mainRoot()->removeAll(strId);
+    mainRoot()->removeAll(aId);
     /* Wipe out empty groups: */
     cleanupGroupTree();
 
     /* Show machine if we should: */
-    CMachine machine = vboxGlobal().virtualBox().FindMachine(strId);
-    if (gEDataManager->showMachineInSelectorChooser(strId))
+    CMachine machine = vboxGlobal().virtualBox().FindMachine(aId.toString());
+    if (gEDataManager->showMachineInSelectorChooser(aId))
         addMachineIntoTheTree(machine);
 
@@ -1090,7 +1090,7 @@
 
     /* Prepare arrays: */
-    QMap<QString, bool> verdicts;
+    QMap<QUuid, bool> verdicts;
     QList<UIGChooserItem*> itemsToRemove;
-    QStringList machinesToUnregister;
+    QList<QUuid> machinesToUnregister;
 
     /* For each selected machine-item: */
@@ -1098,11 +1098,11 @@
     {
         /* Get machine-item id: */
-        QString strId = pItem->toMachineItem()->id();
+        QUuid aId = pItem->toMachineItem()->id();
 
         /* We already decided for that machine? */
-        if (verdicts.contains(strId))
+        if (verdicts.contains(aId))
         {
             /* To remove similar machine items? */
-            if (!verdicts[strId])
+            if (!verdicts[aId])
                 itemsToRemove << pItem;
             continue;
@@ -1112,10 +1112,10 @@
         int iSelectedCopyCount = 0;
         foreach (UIGChooserItem *pSelectedItem, selectedMachineItemList)
-            if (pSelectedItem->toMachineItem()->id() == strId)
+            if (pSelectedItem->toMachineItem()->id() == aId)
                 ++iSelectedCopyCount;
         /* Existing copy count: */
         int iExistingCopyCount = 0;
         foreach (UIGChooserItem *pExistingItem, existingMachineItemList)
-            if (pExistingItem->toMachineItem()->id() == strId)
+            if (pExistingItem->toMachineItem()->id() == aId)
                 ++iExistingCopyCount;
         /* If selected copy count equal to existing copy count,
@@ -1123,7 +1123,7 @@
          * we will just propose to remove selected items: */
         bool fVerdict = iSelectedCopyCount == iExistingCopyCount;
-        verdicts.insert(strId, fVerdict);
+        verdicts.insert(aId, fVerdict);
         if (fVerdict)
-            machinesToUnregister << strId;
+            machinesToUnregister.append(aId);
         else
             itemsToRemove << pItem;
@@ -1332,20 +1332,20 @@
 
     /* Setup global connections: */
-    connect(gVBoxEvents, SIGNAL(sigMachineStateChange(QString, KMachineState)),
-            this, SLOT(sltMachineStateChanged(QString, KMachineState)));
-    connect(gVBoxEvents, SIGNAL(sigMachineDataChange(QString)),
-            this, SLOT(sltMachineDataChanged(QString)));
-    connect(gVBoxEvents, SIGNAL(sigMachineRegistered(QString, bool)),
-            this, SLOT(sltMachineRegistered(QString, bool)));
-    connect(gVBoxEvents, SIGNAL(sigSessionStateChange(QString, KSessionState)),
-            this, SLOT(sltSessionStateChanged(QString, KSessionState)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotTake(QString, QString)),
-            this, SLOT(sltSnapshotChanged(QString, QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotDelete(QString, QString)),
-            this, SLOT(sltSnapshotChanged(QString, QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QString, QString)),
-            this, SLOT(sltSnapshotChanged(QString, QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotRestore(QString, QString)),
-            this, SLOT(sltSnapshotChanged(QString, QString)));
+    connect(gVBoxEvents, SIGNAL(sigMachineStateChange(QUuid, KMachineState)),
+            this, SLOT(sltMachineStateChanged(QUuid, KMachineState)));
+    connect(gVBoxEvents, SIGNAL(sigMachineDataChange(QUuid)),
+            this, SLOT(sltMachineDataChanged(QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigMachineRegistered(QUuid, bool)),
+            this, SLOT(sltMachineRegistered(QUuid, bool)));
+    connect(gVBoxEvents, SIGNAL(sigSessionStateChange(QUuid, KSessionState)),
+            this, SLOT(sltSessionStateChanged(QUuid, KSessionState)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotTake(QUuid, QUuid)),
+            this, SLOT(sltSnapshotChanged(QUuid, QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotDelete(QUuid, QUuid)),
+            this, SLOT(sltSnapshotChanged(QUuid, QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QUuid, QUuid)),
+            this, SLOT(sltSnapshotChanged(QUuid, QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotRestore(QUuid, QUuid)),
+            this, SLOT(sltSnapshotChanged(QUuid, QUuid)));
 }
 
@@ -1544,12 +1544,12 @@
 }
 
-void UIGChooserModel::unregisterMachines(const QStringList &ids)
+void UIGChooserModel::unregisterMachines(const QList<QUuid> &ids)
 {
     /* Populate machine list: */
     QList<CMachine> machines;
     CVirtualBox vbox = vboxGlobal().virtualBox();
-    foreach (const QString &strId, ids)
-    {
-        CMachine machine = vbox.FindMachine(strId);
+    foreach (const QUuid &uId, ids)
+    {
+        CMachine machine = vbox.FindMachine(uId.toString());
         if (!machine.isNull())
             machines << machine;
@@ -1754,6 +1754,6 @@
     foreach (CMachine machine, vboxGlobal().virtualBox().GetMachines())
     {
-        const QString strMachineID = machine.GetId();
-        if (!strMachineID.isEmpty() && gEDataManager->showMachineInSelectorChooser(strMachineID))
+        const QUuid uMachineID = machine.GetId();
+        if (!uMachineID.isNull() && gEDataManager->showMachineInSelectorChooser(uMachineID))
             addMachineIntoTheTree(machine);
     }
@@ -1769,5 +1769,5 @@
 
     /* Which VM we are loading: */
-    LogRelFlow(("UIGChooserModel: Loading VM with ID={%s}...\n", machine.GetId().toUtf8().constData()));
+    LogRelFlow(("UIGChooserModel: Loading VM with ID={%s}...\n", machine.GetId().toString().toUtf8().constData()));
     /* Is that machine accessible? */
     if (machine.GetAccessible())
@@ -1793,5 +1793,5 @@
         }
         /* Update group definitions: */
-        m_groups[machine.GetId()] = groupList;
+        m_groups[machine.GetId().toString()] = groupList;
     }
     /* Inaccessible machine: */
@@ -1799,5 +1799,5 @@
     {
         /* VM is accessible: */
-        LogRelFlow(("UIGChooserModel:  VM {%s} is inaccessible.\n", machine.GetId().toUtf8().constData()));
+        LogRelFlow(("UIGChooserModel:  VM {%s} is inaccessible.\n", machine.GetId().toString().toUtf8().constData()));
         /* Create machine-item with main-root group-item as parent: */
         createMachineItem(machine, mainRoot());
@@ -1894,5 +1894,5 @@
             /* Which position should be current item placed by definitions? */
             QString strDefinitionName = pItem->type() == UIGChooserItemType_Group ? pItem->name() :
-                                        pItem->type() == UIGChooserItemType_Machine ? pItem->toMachineItem()->id() :
+                                        pItem->type() == UIGChooserItemType_Machine ? pItem->toMachineItem()->id().toString() :
                                         QString();
             AssertMsg(!strDefinitionName.isEmpty(), ("Wrong definition name!"));
@@ -1964,5 +1964,5 @@
                               pParentItem, machine,
                               /* Which position new group-item should be placed in? */
-                              getDesiredPosition(pParentItem, UIGChooserItemType_Machine, machine.GetId()));
+                              getDesiredPosition(pParentItem, UIGChooserItemType_Machine, machine.GetId().toString()));
 }
 
@@ -1980,6 +1980,6 @@
     UIGroupDefinitionSaveThread::prepare();
     emit sigGroupSavingStateChanged();
-    connect(UIGroupDefinitionSaveThread::instance(), SIGNAL(sigReload(QString)),
-            this, SLOT(sltReloadMachine(QString)));
+    connect(UIGroupDefinitionSaveThread::instance(), SIGNAL(sigReload(QUuid)),
+            this, SLOT(sltReloadMachine(QUuid)));
     UIGroupDefinitionSaveThread::instance()->configure(this, m_groups, groups);
     UIGroupDefinitionSaveThread::instance()->start();
@@ -2011,5 +2011,5 @@
         if (UIGChooserItemMachine *pMachineItem = pItem->toMachineItem())
             if (pMachineItem->accessible())
-                groups[pMachineItem->id()] << pParentGroup->fullName();
+                groups[pMachineItem->id().toString()] << pParentGroup->fullName();
     /* Iterate over all the group-items: */
     foreach (UIGChooserItem *pItem, pParentGroup->items(UIGChooserItemType_Group))
@@ -2031,5 +2031,5 @@
     /* Iterate over all the machine-items: */
     foreach (UIGChooserItem *pItem, pParentItem->items(UIGChooserItemType_Machine))
-        groups[strExtraDataKey] << QString("m=%1").arg(pItem->toMachineItem()->id());
+        groups[strExtraDataKey] << QString("m=%1").arg(pItem->toMachineItem()->id().toString());
 }
 
@@ -2130,5 +2130,5 @@
         {
             /* 1. Open session: */
-            session = vboxGlobal().openSession(strId);
+            session = vboxGlobal().openSession(QUuid(strId));
             if (session.isNull())
                 break;
@@ -2158,5 +2158,5 @@
         /* Cleanup if necessary: */
         if (machine.isNull() || !machine.isOk())
-            emit sigReload(strId);
+            emit sigReload(QUuid(strId));
         if (!session.isNull())
             session.UnlockMachine();
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.h	(revision 74878)
@@ -21,4 +21,5 @@
 /* Qt includes: */
 #include <QObject>
+#include <QUuid>
 #include <QPointer>
 #include <QTransform>
@@ -159,9 +160,9 @@
 
     /* Handlers: Global events: */
-    void sltMachineStateChanged(QString strId, KMachineState state);
-    void sltMachineDataChanged(QString strId);
-    void sltMachineRegistered(QString strId, bool fRegistered);
-    void sltSessionStateChanged(QString strId, KSessionState state);
-    void sltSnapshotChanged(QString strId, QString strSnapshotId);
+    void sltMachineStateChanged(const QUuid &aId, const KMachineState state);
+    void sltMachineDataChanged(const QUuid &aId);
+    void sltMachineRegistered(const QUuid &aId, const bool fRegistered);
+    void sltSessionStateChanged(const QUuid &aId, const KSessionState state);
+    void sltSnapshotChanged(const QUuid &aId, const QUuid &aSnapshotId);
 
     /* Handler: Chooser-view stuff: */
@@ -184,5 +185,5 @@
     void sltCreateNewMachine();
     void sltGroupSelectedMachines();
-    void sltReloadMachine(const QString &strId);
+    void sltReloadMachine(const QUuid &aId);
     void sltSortParentGroup();
     void sltPerformRefreshAction();
@@ -247,5 +248,5 @@
     /* Helpers: Machine-item stuff: */
     void removeItems(const QList<UIGChooserItem*> &itemsToRemove);
-    void unregisterMachines(const QStringList &ids);
+    void unregisterMachines(const QList<QUuid> &ids);
 
     /* Helpers: Context-menu stuff: */
@@ -303,5 +304,5 @@
 
     /** Holds the Id of last VM created from the GUI side. */
-    QString m_strLastCreatedMachineId;
+    QUuid m_uLastCreatedMachineId;
 };
 
@@ -314,5 +315,5 @@
 
     /* Notifier: Reload stuff: */
-    void sigReload(QString strId);
+    void sigReload(const QUuid &aId);
 
     /* Notifier: Complete stuff: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.cpp	(revision 74878)
@@ -102,6 +102,6 @@
     connect(m_pDetailsModel, SIGNAL(sigRootItemMinimumHeightHintChanged(int)),
             m_pDetailsView, SLOT(sltMinimumHeightHintChanged(int)));
-    connect(m_pDetailsModel, SIGNAL(sigLinkClicked(const QString&, const QString&, const QString&)),
-            this, SIGNAL(sigLinkClicked(const QString&, const QString&, const QString&)));
+    connect(m_pDetailsModel, SIGNAL(sigLinkClicked(const QString&, const QString&, const QUuid&)),
+            this, SIGNAL(sigLinkClicked(const QString&, const QString&, const QUuid&)));
     connect(this, SIGNAL(sigSlidingStarted()),
             m_pDetailsModel, SLOT(sltHandleSlidingStarted()));
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.h	(revision 74878)
@@ -36,5 +36,5 @@
 
     /* Notifier: Link processing stuff: */
-    void sigLinkClicked(const QString &strCategory, const QString &strControl, const QString &strId);
+    void sigLinkClicked(const QString &strCategory, const QString &strControl, const QUuid &aId);
 
     /* Notifier: Sliding stuff: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsElement.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsElement.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsElement.cpp	(revision 74878)
@@ -470,6 +470,6 @@
     connect(this, SIGNAL(sigToggleElement(DetailsElementType, bool)),
             model(), SLOT(sltToggleElements(DetailsElementType, bool)));
-    connect(this, SIGNAL(sigLinkClicked(const QString&, const QString&, const QString&)),
-            model(), SIGNAL(sigLinkClicked(const QString&, const QString&, const QString&)));
+    connect(this, SIGNAL(sigLinkClicked(const QString&, const QString&, const QUuid&)),
+            model(), SIGNAL(sigLinkClicked(const QString&, const QString&, const QUuid&)));
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsElement.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsElement.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsElement.h	(revision 74878)
@@ -59,5 +59,5 @@
 
     /* Notifier: Link-click stuff: */
-    void sigLinkClicked(const QString &strCategory, const QString &strControl, const QString &strId);
+    void sigLinkClicked(const QString &strCategory, const QString &strControl, const QUuid &aId);
 
 public:
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsGroup.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsGroup.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsGroup.cpp	(revision 74878)
@@ -77,8 +77,8 @@
 
     /* Generate new group-id: */
-    m_strGroupId = QUuid::createUuid().toString();
+    m_uGroupId = QUuid::createUuid();
 
     /* Request to build first step: */
-    emit sigBuildStep(m_strGroupId, 0);
+    emit sigBuildStep(m_uGroupId, 0);
 }
 
@@ -86,8 +86,8 @@
 {
     /* Generate new group-id: */
-    m_strGroupId = QUuid::createUuid().toString();
-}
-
-void UIGDetailsGroup::sltBuildStep(QString strStepId, int iStepNumber)
+    m_uGroupId = QUuid::createUuid();
+}
+
+void UIGDetailsGroup::sltBuildStep(const QUuid &aStepId, const int iStepNumber)
 {
     /* Cleanup build-step: */
@@ -96,5 +96,5 @@
 
     /* Is step id valid? */
-    if (strStepId != m_strGroupId)
+    if (aStepId != m_uGroupId)
         return;
 
@@ -111,5 +111,5 @@
 
         /* Create next build-step: */
-        m_pBuildStep = new UIBuildStep(this, pSet, strStepId, iStepNumber + 1);
+        m_pBuildStep = new UIBuildStep(this, pSet, aStepId, iStepNumber + 1);
 
         /* Build set: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsGroup.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsGroup.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsGroup.h	(revision 74878)
@@ -56,5 +56,5 @@
 
     /* Handler: Build stuff: */
-    void sltBuildStep(QString strStepId, int iStepNumber);
+    void sltBuildStep(const QUuid &aStepId, const int iStepNumber);
 
 private:
@@ -96,5 +96,5 @@
     QList<UIVMItem*> m_machineItems;
     UIBuildStep *m_pBuildStep;
-    QString m_strGroupId;
+    QUuid m_uGroupId;
 
     /* Friends: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsItem.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsItem.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsItem.cpp	(revision 74878)
@@ -271,5 +271,5 @@
 }
 
-void UIGDetailsItem::sltBuildStep(QString, int)
+void UIGDetailsItem::sltBuildStep(const QUuid &, const int)
 {
     AssertMsgFailed(("This item doesn't support building!"));
@@ -329,17 +329,17 @@
 }
 
-UIBuildStep::UIBuildStep(QObject *pParent, QObject *pBuildObject, const QString &strStepId, int iStepNumber)
+UIBuildStep::UIBuildStep(QObject *pParent, QObject *pBuildObject, const QUuid &aStepId, int iStepNumber)
     : QObject(pParent)
-    , m_strStepId(strStepId)
+    , m_uStepId(aStepId)
     , m_iStepNumber(iStepNumber)
 {
     /* Prepare connections: */
     connect(pBuildObject, SIGNAL(sigBuildDone()), this, SLOT(sltStepDone()), Qt::QueuedConnection);
-    connect(this, SIGNAL(sigStepDone(QString, int)), pParent, SLOT(sltBuildStep(QString, int)), Qt::QueuedConnection);
+    connect(this, SIGNAL(sigStepDone(QUuid, int)), pParent, SLOT(sltBuildStep(QUuid, int)), Qt::QueuedConnection);
 }
 
 void UIBuildStep::sltStepDone()
 {
-    emit sigStepDone(m_strStepId, m_iStepNumber);
-}
-
+    emit sigStepDone(m_uStepId, m_iStepNumber);
+}
+
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsItem.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsItem.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsItem.h	(revision 74878)
@@ -18,4 +18,7 @@
 #ifndef __UIGDetailsItem_h__
 #define __UIGDetailsItem_h__
+
+/* Qt includes: */
+#include <QUuid>
 
 /* GUI includes: */
@@ -50,5 +53,5 @@
 
     /* Notifiers: Build stuff: */
-    void sigBuildStep(QString strStepId, int iStepNumber);
+    void sigBuildStep(const QUuid &aStepId, const int iStepNumber);
     void sigBuildDone();
 
@@ -89,5 +92,5 @@
 
     /* Handler: Build stuff: */
-    virtual void sltBuildStep(QString strStepId, int iStepNumber);
+    virtual void sltBuildStep(const QUuid & aStepId, const int iStepNumber);
 
 protected:
@@ -118,10 +121,10 @@
 
     /* Notifier: Build stuff: */
-    void sigStepDone(QString strStepId, int iStepNumber);
+    void sigStepDone(const QUuid &aStepId, const int iStepNumber);
 
 public:
 
     /* Constructor: */
-    UIBuildStep(QObject *pParent, QObject *pBuildObject, const QString &strStepId, int iStepNumber);
+    UIBuildStep(QObject *pParent, QObject *pBuildObject, const QUuid &aStepId, int iStepNumber);
 
 private slots:
@@ -133,5 +136,5 @@
 
     /* Variables: */
-    QString m_strStepId;
+    QUuid m_uStepId;
     int m_iStepNumber;
 };
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.h	(revision 74878)
@@ -54,5 +54,5 @@
 
     /* Notifier: Link processing stuff: */
-    void sigLinkClicked(const QString &strCategory, const QString &strControl, const QString &strId);
+    void sigLinkClicked(const QString &strCategory, const QString &strControl, const QUuid &aId);
 
 public:
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsSet.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsSet.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsSet.cpp	(revision 74878)
@@ -113,5 +113,5 @@
 }
 
-void UIGDetailsSet::sltBuildStep(QString strStepId, int iStepNumber)
+void UIGDetailsSet::sltBuildStep(const QUuid &aStepId, const int iStepNumber)
 {
     /* Cleanup build-step: */
@@ -120,5 +120,5 @@
 
     /* Is step id valid? */
-    if (strStepId != m_strSetId)
+    if (aStepId != m_uSetId)
         return;
 
@@ -173,5 +173,5 @@
         {
             /* Create next build-step: */
-            m_pBuildStep = new UIBuildStep(this, pElement, strStepId, iStepNumber + 1);
+            m_pBuildStep = new UIBuildStep(this, pElement, aStepId, iStepNumber + 1);
 
             /* Build element: */
@@ -182,5 +182,5 @@
         {
             /* Just build next step: */
-            sltBuildStep(strStepId, iStepNumber + 1);
+            sltBuildStep(aStepId, iStepNumber + 1);
         }
     }
@@ -198,8 +198,8 @@
 }
 
-void UIGDetailsSet::sltMachineStateChange(QString strId)
+void UIGDetailsSet::sltMachineStateChange(const QUuid &aId)
 {
     /* Is this our VM changed? */
-    if (m_machine.GetId() != strId)
+    if (m_machine.GetId() != aId)
         return;
 
@@ -208,8 +208,8 @@
 }
 
-void UIGDetailsSet::sltMachineAttributesChange(QString strId)
+void UIGDetailsSet::sltMachineAttributesChange(const QUuid &aId)
 {
     /* Is this our VM changed? */
-    if (m_machine.GetId() != strId)
+    if (m_machine.GetId() != aId)
         return;
 
@@ -346,11 +346,11 @@
 {
     /* Global-events connections: */
-    connect(gVBoxEvents, SIGNAL(sigMachineStateChange(QString, KMachineState)), this, SLOT(sltMachineStateChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigMachineDataChange(QString)), this, SLOT(sltMachineAttributesChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigSessionStateChange(QString, KSessionState)), this, SLOT(sltMachineAttributesChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotTake(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotDelete(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotRestore(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
+    connect(gVBoxEvents, SIGNAL(sigMachineStateChange(QUuid, KMachineState)), this, SLOT(sltMachineStateChange(QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigMachineDataChange(QUuid)), this, SLOT(sltMachineAttributesChange(QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSessionStateChange(QUuid, KSessionState)), this, SLOT(sltMachineAttributesChange(QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotTake(QUuid, QUuid)), this, SLOT(sltMachineAttributesChange(QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotDelete(QUuid, QUuid)), this, SLOT(sltMachineAttributesChange(QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QUuid, QUuid)), this, SLOT(sltMachineAttributesChange(QUuid)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotRestore(QUuid, QUuid)), this, SLOT(sltMachineAttributesChange(QUuid)));
 
     /* Meidum-enumeration connections: */
@@ -567,8 +567,8 @@
 
     /* Generate new set-id: */
-    m_strSetId = QUuid::createUuid().toString();
+    m_uSetId = QUuid::createUuid();
 
     /* Request to build first step: */
-    emit sigBuildStep(m_strSetId, DetailsElementType_General);
+    emit sigBuildStep(m_uSetId, DetailsElementType_General);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsSet.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsSet.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsSet.h	(revision 74878)
@@ -63,9 +63,9 @@
 
     /* Handler: Build stuff: */
-    void sltBuildStep(QString strStepId, int iStepNumber);
+    void sltBuildStep(const QUuid &aStepId, const int iStepNumber);
 
     /* Handlers: Global event stuff: */
-    void sltMachineStateChange(QString strId);
-    void sltMachineAttributesChange(QString strId);
+    void sltMachineStateChange(const QUuid &aId);
+    void sltMachineAttributesChange(const QUuid &aId);
 
     /* Handler: Update stuff: */
@@ -124,5 +124,5 @@
     UIBuildStep *m_pBuildStep;
     int m_iLastStepNumber;
-    QString m_strSetId;
+    QUuid m_uSetId;
     QMap<DetailsElementType, bool> m_settings;
 };
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGMachinePreview.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGMachinePreview.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGMachinePreview.cpp	(revision 74878)
@@ -170,8 +170,8 @@
 }
 
-void UIGMachinePreview::sltMachineStateChange(QString strId)
+void UIGMachinePreview::sltMachineStateChange(const QUuid &aId)
 {
     /* Make sure its the event for our machine: */
-    if (m_machine.isNull() || m_machine.GetId() != strId)
+    if (m_machine.isNull() || m_machine.GetId() != aId)
         return;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGMachinePreview.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGMachinePreview.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGMachinePreview.h	(revision 74878)
@@ -66,5 +66,5 @@
 
     /* Handler: Global-event listener stuff: */
-    void sltMachineStateChange(QString strId);
+    void sltMachineStateChange(const QUuid &aId);
 
     /* Handler: Preview recreator: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp	(revision 74878)
@@ -330,8 +330,8 @@
 *********************************************************************************************************************************/
 
-UISettingsDialogMachine::UISettingsDialogMachine(QWidget *pParent, const QString &strMachineId,
+UISettingsDialogMachine::UISettingsDialogMachine(QWidget *pParent, const QUuid &aMachineId,
                                                  const QString &strCategory, const QString &strControl)
     : UISettingsDialog(pParent)
-    , m_strMachineId(strMachineId)
+    , m_uMachineId(aMachineId)
     , m_strCategory(strCategory)
     , m_strControl(strControl)
@@ -408,6 +408,6 @@
     /* Prepare session: */
     m_session = configurationAccessLevel() == ConfigurationAccessLevel_Null ? CSession() :
-                configurationAccessLevel() == ConfigurationAccessLevel_Full ? vboxGlobal().openSession(m_strMachineId) :
-                                                                              vboxGlobal().openExistingSession(m_strMachineId);
+                configurationAccessLevel() == ConfigurationAccessLevel_Full ? vboxGlobal().openSession(m_uMachineId) :
+                                                                              vboxGlobal().openExistingSession(m_uMachineId);
     /* Check that session was created: */
     if (m_session.isNull())
@@ -434,6 +434,6 @@
     /* Prepare session: */
     m_session = configurationAccessLevel() == ConfigurationAccessLevel_Null ? CSession() :
-                configurationAccessLevel() == ConfigurationAccessLevel_Full ? vboxGlobal().openSession(m_strMachineId) :
-                                                                              vboxGlobal().openExistingSession(m_strMachineId);
+                configurationAccessLevel() == ConfigurationAccessLevel_Full ? vboxGlobal().openSession(m_uMachineId) :
+                                                                              vboxGlobal().openExistingSession(m_uMachineId);
     /* Check that session was created: */
     if (m_session.isNull())
@@ -482,5 +482,5 @@
         /* Disable First RUN Wizard: */
         if (m_fResetFirstRunFlag)
-            gEDataManager->setMachineFirstTimeStarted(false, m_strMachineId);
+            gEDataManager->setMachineFirstTimeStarted(false, m_uMachineId);
 
         /* Save settings finally: */
@@ -509,5 +509,5 @@
     QString strDialogTitle;
     /* Get corresponding machine (required to compose dialog title): */
-    const CMachine &machine = vboxGlobal().virtualBox().FindMachine(m_strMachineId);
+    const CMachine &machine = vboxGlobal().virtualBox().FindMachine(m_uMachineId.toString());
     if (!machine.isNull())
         strDialogTitle = tr("%1 - %2").arg(machine.GetName()).arg(titleExtension());
@@ -603,5 +603,5 @@
 }
 
-void UISettingsDialogMachine::sltSessionStateChanged(QString strMachineId, KSessionState enmSessionState)
+void UISettingsDialogMachine::sltSessionStateChanged(const QUuid &aMachineId, const KSessionState enmSessionState)
 {
     /* Ignore if serialization is in progress: */
@@ -609,5 +609,5 @@
         return;
     /* Ignore if thats NOT our VM: */
-    if (strMachineId != m_strMachineId)
+    if (aMachineId != m_uMachineId)
         return;
 
@@ -622,5 +622,5 @@
 }
 
-void UISettingsDialogMachine::sltMachineStateChanged(QString strMachineId, KMachineState enmMachineState)
+void UISettingsDialogMachine::sltMachineStateChanged(const QUuid &aMachineId, const KMachineState enmMachineState)
 {
     /* Ignore if serialization is in progress: */
@@ -628,5 +628,5 @@
         return;
     /* Ignore if thats NOT our VM: */
-    if (strMachineId != m_strMachineId)
+    if (aMachineId != m_uMachineId)
         return;
 
@@ -641,5 +641,5 @@
 }
 
-void UISettingsDialogMachine::sltMachineDataChanged(QString strMachineId)
+void UISettingsDialogMachine::sltMachineDataChanged(const QUuid &aMachineId)
 {
     /* Ignore if serialization is in progress: */
@@ -647,5 +647,5 @@
         return;
     /* Ignore if thats NOT our VM: */
-    if (strMachineId != m_strMachineId)
+    if (aMachineId != m_uMachineId)
         return;
 
@@ -689,5 +689,5 @@
 
     /* Get corresponding machine (required to determine dialog type and page availability): */
-    m_machine = vboxGlobal().virtualBox().FindMachine(m_strMachineId);
+    m_machine = vboxGlobal().virtualBox().FindMachine(m_uMachineId.toString());
     AssertMsg(!m_machine.isNull(), ("Can't find corresponding machine!\n"));
     m_enmSessionState = m_machine.GetSessionState();
@@ -695,5 +695,5 @@
 
     /* Creating settings pages: */
-    QList<MachineSettingsPageType> restrictedMachineSettingsPages = gEDataManager->restrictedMachineSettingsPages(m_strMachineId);
+    QList<MachineSettingsPageType> restrictedMachineSettingsPages = gEDataManager->restrictedMachineSettingsPages(m_uMachineId);
     for (int iPageIndex = MachineSettingsPageType_General; iPageIndex < MachineSettingsPageType_Max; ++iPageIndex)
     {
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.h	(revision 74878)
@@ -81,8 +81,8 @@
 
     /** Constructs settings dialog passing @a pParent to the base-class.
-      * @param  strMachineId  Brings the machine ID.
+      * @param  aMachineId    Brings the machine ID.
       * @param  strCategory   Brings the name of category to be opened.
       * @param  strControl    Brings the name of control to be focused. */
-    UISettingsDialogMachine(QWidget *pParent, const QString &strMachineId,
+    UISettingsDialogMachine(QWidget *pParent, const QUuid &aMachineId,
                             const QString &strCategory, const QString &strControl);
 
@@ -117,10 +117,10 @@
 private slots:
 
-    /** Handles session state change for machine with certain @a strMachineId to @a enmSessionState. */
-    void sltSessionStateChanged(QString strMachineId, KSessionState enmSessionState);
-    /** Handles machine state change for machine with certain @a strMachineId to @a enmMachineState. */
-    void sltMachineStateChanged(QString strMachineId, KMachineState enmMachineState);
-    /** Handles machine data change for machine with certain @a strMachineId. */
-    void sltMachineDataChanged(QString strMachineId);
+    /** Handles session state change for machine with certain @a aMachineId to @a enmSessionState. */
+    void sltSessionStateChanged(const QUuid &aMachineId, const KSessionState enmSessionState);
+    /** Handles machine state change for machine with certain @a aMachineId to @a enmMachineState. */
+    void sltMachineStateChanged(const QUuid &aMachineId, const KMachineState enmMachineState);
+    /** Handles machine data change for machine with certain @a aMachineId. */
+    void sltMachineDataChanged(const QUuid &aMachineId);
 
     /** Handles request to allow to reset first run flag. */
@@ -144,5 +144,5 @@
 
     /** Holds the machine ID. */
-    QString  m_strMachineId;
+    QUuid    m_uMachineId;
     /** Holds the name of category to be opened. */
     QString  m_strCategory;
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 74878)
@@ -1391,8 +1391,8 @@
 
         /* Get machine ID for further activities: */
-        QString strMachineId;
+        QUuid uMachineId;
         if (fSuccess)
         {
-            strMachineId = m_machine.GetId();
+            uMachineId = m_machine.GetId();
             fSuccess = m_machine.isOk();
         }
@@ -1405,5 +1405,5 @@
         if (fSuccess && newDisplayData.m_scaleFactors != oldDisplayData.m_scaleFactors)
         {
-            gEDataManager->setScaleFactors(newDisplayData.m_scaleFactors, strMachineId);
+            gEDataManager->setScaleFactors(newDisplayData.m_scaleFactors, uMachineId);
         }
     }
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp	(revision 74878)
@@ -871,8 +871,8 @@
 
                     /* Get medium id for further activities: */
-                    QString strMediumId;
+                    QUuid aMediumId;
                     if (fSuccess)
                     {
-                        strMediumId = comMedium.GetId();
+                        aMediumId = comMedium.GetId();
                         fSuccess = comMedium.isOk();
                     }
@@ -906,5 +906,5 @@
 
                         /* Check if old password exists/provided: */
-                        const QString strOldPasswordId = encryptedMedium.key(strMediumId);
+                        const QString strOldPasswordId = encryptedMedium.key(aMediumId);
                         const QString strOldPassword = encryptionPasswords.value(strOldPasswordId);
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.cpp	(revision 74878)
@@ -134,6 +134,6 @@
 
 
-UIMachineSettingsInterface::UIMachineSettingsInterface(const QString strMachineId)
-    : m_strMachineId(strMachineId)
+UIMachineSettingsInterface::UIMachineSettingsInterface(const QUuid &aMachineId)
+    : m_uMachineId(aMachineId)
     , m_pActionPool(0)
     , m_pCache(0)
@@ -319,5 +319,5 @@
             m_pActionPool = UIActionPool::create(UIActionPoolType_Runtime);
             m_pMenuBarEditor->setActionPool(m_pActionPool);
-            m_pMenuBarEditor->setMachineID(m_strMachineId);
+            m_pMenuBarEditor->setMachineID(m_uMachineId);
         }
 
@@ -326,5 +326,5 @@
         {
             /* Configure editor: */
-            m_pStatusBarEditor->setMachineID(m_strMachineId);
+            m_pStatusBarEditor->setMachineID(m_uMachineId);
         }
     }
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.h	(revision 74878)
@@ -37,5 +37,5 @@
 
     /** Constructs User Interface settings page. */
-    UIMachineSettingsInterface(const QString strMachineId);
+    UIMachineSettingsInterface(const QUuid &aMachineId);
     /** Destructs User Interface settings page. */
     ~UIMachineSettingsInterface();
@@ -83,5 +83,5 @@
 
     /** Holds the machine ID copy. */
-    const QString  m_strMachineId;
+    const QUuid    m_uMachineId;
     /** Holds the action-pool instance. */
     UIActionPool  *m_pActionPool;
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp	(revision 74878)
@@ -69,5 +69,5 @@
         , m_iAttachmentPort(-1)
         , m_iAttachmentDevice(-1)
-        , m_strAttachmentMediumId(QString())
+        , m_uAttachmentMediumId(QUuid())
         , m_fAttachmentPassthrough(false)
         , m_fAttachmentTempEject(false)
@@ -83,5 +83,5 @@
                && (m_iAttachmentPort == other.m_iAttachmentPort)
                && (m_iAttachmentDevice == other.m_iAttachmentDevice)
-               && (m_strAttachmentMediumId == other.m_strAttachmentMediumId)
+               && (m_uAttachmentMediumId == other.m_uAttachmentMediumId)
                && (m_fAttachmentPassthrough == other.m_fAttachmentPassthrough)
                && (m_fAttachmentTempEject == other.m_fAttachmentTempEject)
@@ -103,5 +103,5 @@
     LONG         m_iAttachmentDevice;
     /** Holds the attachment medium ID. */
-    QString      m_strAttachmentMediumId;
+    QUuid        m_uAttachmentMediumId;
     /** Holds whether the attachment being passed through. */
     bool         m_fAttachmentPassthrough;
@@ -604,10 +604,10 @@
 }
 
-QString AbstractItem::machineId() const
+QUuid AbstractItem::machineId() const
 {
     return mMachineId;
 }
 
-void AbstractItem::setMachineId (const QString &aMachineId)
+void AbstractItem::setMachineId (const QUuid &aMachineId)
 {
     mMachineId = aMachineId;
@@ -943,5 +943,5 @@
 }
 
-QString AttachmentItem::attMediumId() const
+QUuid AttachmentItem::attMediumId() const
 {
     return mAttMediumId;
@@ -983,7 +983,8 @@
 }
 
-void AttachmentItem::setAttMediumId (const QString &aAttMediumId)
-{
-    AssertMsg(!aAttMediumId.isEmpty(), ("Medium ID value can't be null/empty!\n"));
+void AttachmentItem::setAttMediumId (const QUuid &aAttMediumId)
+{
+    /// @todo is this required?
+    //AssertMsg(!aAttMediumId.isNull(), ("Medium ID value can't be null!\n"));
     mAttMediumId = vboxGlobal().medium(aAttMediumId).id();
     cache();
@@ -1273,6 +1274,6 @@
         {
             if (AbstractItem *item = static_cast <AbstractItem*> (aIndex.internalPointer()))
-                return item->id().toString();
-            return QUuid().toString();
+                return item->id();
+            return QUuid();
         }
         case R_ItemPixmap:
@@ -1511,5 +1512,5 @@
                 if (item->rtti() == AbstractItem::Type_AttachmentItem)
                     return static_cast <AttachmentItem*> (item)->attMediumId();
-            return QString();
+            return QUuid();
         }
         case R_AttIsHostDrive:
@@ -1758,5 +1759,5 @@
                 if (item->rtti() == AbstractItem::Type_AttachmentItem)
                 {
-                    static_cast <AttachmentItem*> (item)->setAttMediumId (aValue.toString());
+                    static_cast <AttachmentItem*> (item)->setAttMediumId (aValue.toUuid());
                     emit dataChanged (aIndex, aIndex);
                     return true;
@@ -1834,5 +1835,5 @@
 }
 
-QModelIndex StorageModel::addAttachment (const QUuid &aCtrId, KDeviceType aDeviceType, const QString &strMediumId)
+QModelIndex StorageModel::addAttachment (const QUuid &aCtrId, KDeviceType aDeviceType, const QUuid &aMediumId)
 {
     if (AbstractItem *parent = mRootItem->childItemById (aCtrId))
@@ -1843,5 +1844,5 @@
         AttachmentItem *pItem = new AttachmentItem (parent, aDeviceType);
         pItem->setAttIsHotPluggable(m_configurationAccessLevel != ConfigurationAccessLevel_Full);
-        pItem->setAttMediumId(strMediumId);
+        pItem->setAttMediumId(aMediumId);
         endInsertRows();
         return index (parent->childCount() - 1, 0, parentIndex);
@@ -1865,5 +1866,5 @@
 }
 
-void StorageModel::setMachineId (const QString &aMachineId)
+void StorageModel::setMachineId (const QUuid &aMachineId)
 {
     mRootItem->setMachineId (aMachineId);
@@ -2120,11 +2121,11 @@
     UIMediumIDHolder(QWidget *pParent) : QObject(pParent) {}
 
-    QString id() const { return m_strId; }
-    void setId(const QString &strId) { m_strId = strId; emit sigChanged(); }
+    QUuid id() const { return m_uId; }
+    void setId(const QUuid &aId) { m_uId = aId; emit sigChanged(); }
 
     UIMediumDeviceType type() const { return m_type; }
     void setType(UIMediumDeviceType type) { m_type = type; }
 
-    bool isNull() const { return m_strId == UIMedium().id(); }
+    bool isNull() const { return m_uId == UIMedium().id(); }
 
 signals:
@@ -2134,5 +2135,5 @@
 private:
 
-    QString m_strId;
+    QUuid m_uId;
     UIMediumDeviceType m_type;
 };
@@ -2191,5 +2192,5 @@
 
     /* Gather old common data: */
-    m_strMachineId = m_machine.GetId();
+    m_uMachineId = m_machine.GetId();
     m_strMachineSettingsFilePath = m_machine.GetSettingsFilePath();
     m_strMachineName = m_machine.GetName();
@@ -2249,5 +2250,5 @@
                     oldAttachmentData.m_fAttachmentHotPluggable = comAttachment.GetHotPluggable();
                     const CMedium comMedium = comAttachment.GetMedium();
-                    oldAttachmentData.m_strAttachmentMediumId = comMedium.isNull() ? UIMedium::nullID() : comMedium.GetId();
+                    oldAttachmentData.m_uAttachmentMediumId = comMedium.isNull() ? UIMedium::nullID() : comMedium.GetId();
                     /* Override controller cache key: */
                     strAttachmentKey = QString("%1:%2").arg(oldAttachmentData.m_iAttachmentPort).arg(oldAttachmentData.m_iAttachmentDevice);
@@ -2276,5 +2277,5 @@
 
     /* Load old common data from the cache: */
-    m_pModelStorage->setMachineId(m_strMachineId);
+    m_pModelStorage->setMachineId(m_uMachineId);
 
     /* For each controller: */
@@ -2305,5 +2306,5 @@
             const QModelIndex attachmentIndex = m_pModelStorage->addAttachment(controllerId,
                                                                                oldAttachmentData.m_attachmentType,
-                                                                               oldAttachmentData.m_strAttachmentMediumId);
+                                                                               oldAttachmentData.m_uAttachmentMediumId);
             const StorageSlot attachmentStorageSlot(oldControllerData.m_controllerBus,
                                                     oldAttachmentData.m_iAttachmentPort,
@@ -2368,5 +2369,5 @@
             newAttachmentData.m_fAttachmentNonRotational = m_pModelStorage->data(attachmentIndex, StorageModel::R_AttIsNonRotational).toBool();
             newAttachmentData.m_fAttachmentHotPluggable = m_pModelStorage->data(attachmentIndex, StorageModel::R_AttIsHotPluggable).toBool();
-            newAttachmentData.m_strAttachmentMediumId = m_pModelStorage->data(attachmentIndex, StorageModel::R_AttMediumId).toString();
+            newAttachmentData.m_uAttachmentMediumId = m_pModelStorage->data(attachmentIndex, StorageModel::R_AttMediumId).toString();
             const QString strAttachmentKey = QString("%1:%2").arg(newAttachmentData.m_iAttachmentPort).arg(newAttachmentData.m_iAttachmentDevice);
 
@@ -2627,8 +2628,8 @@
 }
 
-void UIMachineSettingsStorage::sltHandleMediumEnumerated(const QString &strMediumId)
+void UIMachineSettingsStorage::sltHandleMediumEnumerated(const QUuid &aMediumId)
 {
     /* Search for corresponding medium: */
-    const UIMedium medium = vboxGlobal().medium(strMediumId);
+    const UIMedium medium = vboxGlobal().medium(aMediumId);
 
     const QModelIndex rootIndex = m_pModelStorage->root();
@@ -2639,5 +2640,5 @@
         {
             const QModelIndex attIndex = ctrIndex.child(j, 0);
-            const QString attMediumId = m_pModelStorage->data(attIndex, StorageModel::R_AttMediumId).toString();
+            const QUuid attMediumId = m_pModelStorage->data(attIndex, StorageModel::R_AttMediumId).toString();
             if (attMediumId == medium.id())
             {
@@ -2651,5 +2652,5 @@
 }
 
-void UIMachineSettingsStorage::sltHandleMediumDeleted(const QString &strMediumId)
+void UIMachineSettingsStorage::sltHandleMediumDeleted(const QUuid &aMediumId)
 {
     QModelIndex rootIndex = m_pModelStorage->root();
@@ -2660,6 +2661,6 @@
         {
             QModelIndex attIndex = ctrIndex.child(j, 0);
-            QString attMediumId = m_pModelStorage->data(attIndex, StorageModel::R_AttMediumId).toString();
-            if (attMediumId == strMediumId)
+            QUuid attMediumId = m_pModelStorage->data(attIndex, StorageModel::R_AttMediumId).toString();
+            if (attMediumId == aMediumId)
             {
                 m_pModelStorage->setData(attIndex, UIMedium().id(), StorageModel::R_AttMediumId);
@@ -3088,7 +3089,7 @@
 void UIMachineSettingsStorage::sltCreateNewHardDisk()
 {
-    const QString strMediumId = getWithNewHDWizard();
-    if (!strMediumId.isNull())
-        m_pMediumIdHolder->setId(strMediumId);
+    const QUuid uMediumId = getWithNewHDWizard();
+    if (!uMediumId.isNull())
+        m_pMediumIdHolder->setId(uMediumId);
 }
 
@@ -3101,7 +3102,7 @@
 {
     const QString strMachineFolder(QFileInfo(m_strMachineSettingsFilePath).absolutePath());
-    const QString strMediumId = vboxGlobal().openMediumWithFileOpenDialog(m_pMediumIdHolder->type(), this, strMachineFolder);
-    if (!strMediumId.isNull())
-        m_pMediumIdHolder->setId(strMediumId);
+    const QUuid uMediumId = vboxGlobal().openMediumWithFileOpenDialog(m_pMediumIdHolder->type(), this, strMachineFolder);
+    if (!uMediumId.isNull())
+        m_pMediumIdHolder->setId(uMediumId);
 }
 
@@ -3126,7 +3127,7 @@
         const UIMediumDeviceType enmMediumType = (UIMediumDeviceType)mediumInfoList[0].toUInt();
         const QString strMediumLocation = mediumInfoList[1];
-        const QString strMediumId = vboxGlobal().openMedium(enmMediumType, strMediumLocation, this);
-        if (!strMediumId.isNull())
-            m_pMediumIdHolder->setId(strMediumId);
+        const QUuid uMediumId = vboxGlobal().openMedium(enmMediumType, strMediumLocation, this);
+        if (!uMediumId.isNull())
+            m_pMediumIdHolder->setId(uMediumId);
     }
 }
@@ -3690,8 +3691,8 @@
 {
     /* Configure this: */
-    connect(&vboxGlobal(), SIGNAL(sigMediumEnumerated(const QString &)),
-            this, SLOT(sltHandleMediumEnumerated(const QString &)));
-    connect(&vboxGlobal(), SIGNAL(sigMediumDeleted(const QString &)),
-            this, SLOT(sltHandleMediumDeleted(const QString &)));
+    connect(&vboxGlobal(), SIGNAL(sigMediumEnumerated(const QUuid &)),
+            this, SLOT(sltHandleMediumEnumerated(const QUuid &)));
+    connect(&vboxGlobal(), SIGNAL(sigMediumDeleted(const QUuid &)),
+            this, SLOT(sltHandleMediumDeleted(const QUuid &)));
 
     /* Configure tree-view: */
@@ -3795,5 +3796,5 @@
 }
 
-QString UIMachineSettingsStorage::openMediumSelectorDialog(UIMediumDeviceType  enmMediumType)
+QUuid UIMachineSettingsStorage::openMediumSelectorDialog(UIMediumDeviceType  enmMediumType)
 {
     QWidget *pParent = windowManager().realParentWindow(this);
@@ -3806,9 +3807,9 @@
     if (pSelector->execute(true, false))
     {
-        QStringList selectedMediumIds = pSelector->selectedMediumIds();
+        QList<QUuid> selectedMediumIds = pSelector->selectedMediumIds();
         delete pSelector;
         /* Currently we only care about the 0th since we support single selection by intention: */
         if (selectedMediumIds.isEmpty())
-            return QString();
+            return QUuid();
         else
             return selectedMediumIds[0];
@@ -3816,5 +3817,5 @@
 
     delete pSelector;
-    return QString();
+    return QUuid();
 }
 
@@ -3827,5 +3828,5 @@
     const QString strMachineFolder(QFileInfo(m_strMachineSettingsFilePath).absolutePath());
 
-    QString strMediumId;
+    QUuid uMediumId;
     switch (enmDevice)
     {
@@ -3834,7 +3835,7 @@
             const int iAnswer = msgCenter().confirmHardDiskAttachmentCreation(strControllerName, this);
             if (iAnswer == AlertButton_Choice1)
-                strMediumId = getWithNewHDWizard();
+                uMediumId = getWithNewHDWizard();
             else if (iAnswer == AlertButton_Choice2)
-                strMediumId = openMediumSelectorDialog(UIMediumDeviceType_HardDisk);
+                uMediumId = openMediumSelectorDialog(UIMediumDeviceType_HardDisk);
             break;
         }
@@ -3843,7 +3844,7 @@
             int iAnswer = msgCenter().confirmOpticalAttachmentCreation(strControllerName, this);
             if (iAnswer == AlertButton_Choice1)
-                strMediumId = vboxGlobal().medium(strMediumId).id();
+                uMediumId = vboxGlobal().medium(uMediumId).id();
             else if (iAnswer == AlertButton_Choice2)
-                strMediumId = openMediumSelectorDialog(UIMediumDeviceType_DVD);
+                uMediumId = openMediumSelectorDialog(UIMediumDeviceType_DVD);
             break;
         }
@@ -3852,7 +3853,7 @@
             int iAnswer = msgCenter().confirmFloppyAttachmentCreation(strControllerName, this);
             if (iAnswer == AlertButton_Choice1)
-                strMediumId = vboxGlobal().medium(strMediumId).id();
+                uMediumId = vboxGlobal().medium(uMediumId).id();
             else if (iAnswer == AlertButton_Choice2)
-                strMediumId = openMediumSelectorDialog(UIMediumDeviceType_Floppy);
+                uMediumId = openMediumSelectorDialog(UIMediumDeviceType_Floppy);
             break;
         }
@@ -3860,7 +3861,7 @@
     }
 
-    if (!strMediumId.isEmpty())
-    {
-        m_pModelStorage->addAttachment(QUuid(m_pModelStorage->data(index, StorageModel::R_ItemId).toString()), enmDevice, strMediumId);
+    if (!uMediumId.isNull())
+    {
+        m_pModelStorage->addAttachment(QUuid(m_pModelStorage->data(index, StorageModel::R_ItemId).toString()), enmDevice, uMediumId);
         m_pModelStorage->sort();
         emit sigStorageChanged();
@@ -3871,5 +3872,5 @@
 }
 
-QString UIMachineSettingsStorage::getWithNewHDWizard()
+QUuid UIMachineSettingsStorage::getWithNewHDWizard()
 {
     /* Initialize variables: */
@@ -3879,8 +3880,8 @@
     UISafePointerWizardNewVD pWizard = new UIWizardNewVD(this, QString(), fileInfo.absolutePath(), comGuestOSType.GetRecommendedHDD());
     pWizard->prepare();
-    const QString strResult = pWizard->exec() == QDialog::Accepted ? pWizard->virtualDisk().GetId() : QString();
+    const QUuid uResult = pWizard->exec() == QDialog::Accepted ? pWizard->virtualDisk().GetId() : QUuid();
     if (pWizard)
         delete pWizard;
-    return strResult;
+    return uResult;
 }
 
@@ -3956,7 +3957,7 @@
 void UIMachineSettingsStorage::addChooseHostDriveActions(QMenu *pOpenMediumMenu)
 {
-    foreach (const QString &strMediumId, vboxGlobal().mediumIDs())
-    {
-        const UIMedium medium = vboxGlobal().medium(strMediumId);
+    foreach (const QUuid &uMediumId, vboxGlobal().mediumIDs())
+    {
+        const UIMedium medium = vboxGlobal().medium(uMediumId);
         if (medium.isHostDrive() && m_pMediumIdHolder->type() == medium.type())
         {
@@ -4332,5 +4333,5 @@
         {
             /* Create attachment: */
-            const UIMedium vboxMedium = vboxGlobal().medium(newAttachmentData.m_strAttachmentMediumId);
+            const UIMedium vboxMedium = vboxGlobal().medium(newAttachmentData.m_uAttachmentMediumId);
             const CMedium comMedium = vboxMedium.medium();
             m_machine.AttachDevice(newControllerData.m_strControllerName,
@@ -4420,5 +4421,5 @@
         {
             /* Remount attachment: */
-            const UIMedium vboxMedium = vboxGlobal().medium(newAttachmentData.m_strAttachmentMediumId);
+            const UIMedium vboxMedium = vboxGlobal().medium(newAttachmentData.m_uAttachmentMediumId);
             const CMedium comMedium = vboxMedium.medium();
             m_machine.MountMedium(newControllerData.m_strControllerName,
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.h	(revision 74878)
@@ -272,7 +272,7 @@
     AbstractItem* parent() const;
     QUuid id() const;
-    QString machineId() const;
-
-    void setMachineId (const QString &aMchineId);
+    QUuid machineId() const;
+
+    void setMachineId (const QUuid &aMchineId);
 
     virtual ItemType rtti() const = 0;
@@ -290,5 +290,5 @@
     AbstractItem *m_pParentItem;
     QUuid         mId;
-    QString       mMachineId;
+    QUuid         mMachineId;
 };
 Q_DECLARE_METATYPE (AbstractItem::ItemType);
@@ -381,5 +381,5 @@
     KDeviceType attDeviceType() const;
     DeviceTypeList attDeviceTypes() const;
-    QString attMediumId() const;
+    QUuid attMediumId() const;
     bool attIsHostDrive() const;
     bool attIsPassthrough() const;
@@ -390,5 +390,5 @@
     void setAttSlot (const StorageSlot &aAttSlot);
     void setAttDevice (KDeviceType aAttDeviceType);
-    void setAttMediumId (const QString &aAttMediumId);
+    void setAttMediumId (const QUuid &aAttMediumId);
     void setAttIsPassthrough (bool aPassthrough);
     void setAttIsTempEject (bool aTempEject);
@@ -422,5 +422,5 @@
 
     StorageSlot mAttSlot;
-    QString mAttMediumId;
+    QUuid mAttMediumId;
     bool mAttIsHostDrive;
     bool mAttIsPassthrough;
@@ -542,8 +542,8 @@
     void delController (const QUuid &aCtrId);
 
-    QModelIndex addAttachment (const QUuid &aCtrId, KDeviceType aDeviceType, const QString &strMediumId);
+    QModelIndex addAttachment (const QUuid &aCtrId, KDeviceType aDeviceType, const QUuid &aMediumId);
     void delAttachment (const QUuid &aCtrId, const QUuid &aAttId);
 
-    void setMachineId (const QString &aMachineId);
+    void setMachineId (const QUuid &aMachineId);
 
     void sort(int iColumn = 0, Qt::SortOrder order = Qt::AscendingOrder);
@@ -655,7 +655,7 @@
 
     /** Handles enumeration of medium with @a strMediumId. */
-    void sltHandleMediumEnumerated(const QString &strMediumId);
+    void sltHandleMediumEnumerated(const QUuid &aMediumId);
     /** Handles removing of medium with @a strMediumId. */
-    void sltHandleMediumDeleted(const QString &strMediumId);
+    void sltHandleMediumDeleted(const QUuid &aMediumId);
 
     /** Handles command to add controller. */
@@ -742,5 +742,5 @@
     void prepareConnections();
     /** Opens medium selector dialog and retrieves uuid of a selected medium (if any). */
-    QString openMediumSelectorDialog(UIMediumDeviceType  enmMediumType);
+    QUuid openMediumSelectorDialog(UIMediumDeviceType  enmMediumType);
     /** Cleanups all. */
     void cleanup();
@@ -752,5 +752,5 @@
 
     /** Creates new hard-drive. */
-    QString getWithNewHDWizard();
+    QUuid getWithNewHDWizard();
 
     /** Updates additions details according to passed @a enmType. */
@@ -794,5 +794,5 @@
 
     /** Holds the machine ID. */
-    QString  m_strMachineId;
+    QUuid  m_uMachineId;
     /** Holds the machine settings file-path. */
     QString  m_strMachineSettingsFilePath;
Index: trunk/src/VBox/Frontends/VirtualBox/src/snapshots/UISnapshotPane.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/snapshots/UISnapshotPane.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/snapshots/UISnapshotPane.cpp	(revision 74878)
@@ -92,5 +92,5 @@
     CSnapshot snapshot() const { return m_comSnapshot; }
     /** Returns item snapshot ID. */
-    QString snapshotID() const { return m_strSnapshotID; }
+    QUuid snapshotID() const { return m_uSnapshotID; }
 
     /** Returns whether this is the "current state" item. */
@@ -137,7 +137,7 @@
 
     /** Holds the "current snapshot" ID. */
-    QString  m_strSnapshotID;
+    QUuid  m_uSnapshotID;
     /** Holds whether the "current snapshot" is online one. */
-    bool     m_fOnline;
+    bool   m_fOnline;
 
     /** Holds the item timestamp. */
@@ -293,5 +293,5 @@
         /* Fetch snapshot information: */
         AssertReturnVoid(m_comSnapshot.isNotNull());
-        m_strSnapshotID = m_comSnapshot.GetId();
+        m_uSnapshotID = m_comSnapshot.GetId();
         m_strName = m_comSnapshot.GetName();
         setText(Column_Name, m_strName);
@@ -486,5 +486,5 @@
     if (m_comMachine.isNull())
     {
-        m_strMachineId = QString();
+        m_uMachineId = QUuid();
         m_enmSessionState = KSessionState_Null;
         m_fShapshotOperationsAllowed = false;
@@ -492,7 +492,7 @@
     else
     {
-        m_strMachineId = comMachine.GetId();
+        m_uMachineId = comMachine.GetId();
         m_enmSessionState = comMachine.GetSessionState();
-        m_fShapshotOperationsAllowed = gEDataManager->machineSnapshotOperationsEnabled(m_strMachineId);
+        m_fShapshotOperationsAllowed = gEDataManager->machineSnapshotOperationsEnabled(m_uMachineId);
     }
 
@@ -550,8 +550,8 @@
 }
 
-void UISnapshotPane::sltHandleMachineDataChange(QString strMachineId)
+void UISnapshotPane::sltHandleMachineDataChange(const QUuid &aMachineId)
 {
     /* Make sure it's our VM: */
-    if (strMachineId != m_strMachineId)
+    if (aMachineId != m_uMachineId)
         return;
 
@@ -566,8 +566,8 @@
 }
 
-void UISnapshotPane::sltHandleMachineStateChange(QString strMachineId, KMachineState enmState)
+void UISnapshotPane::sltHandleMachineStateChange(const QUuid &aMachineId, const KMachineState enmState)
 {
     /* Make sure it's our VM: */
-    if (strMachineId != m_strMachineId)
+    if (aMachineId != m_uMachineId)
         return;
 
@@ -580,8 +580,8 @@
 }
 
-void UISnapshotPane::sltHandleSessionStateChange(QString strMachineId, KSessionState enmState)
+void UISnapshotPane::sltHandleSessionStateChange(const QUuid &aMachineId, const KSessionState enmState)
 {
     /* Make sure it's our VM: */
-    if (strMachineId != m_strMachineId)
+    if (aMachineId != m_uMachineId)
         return;
 
@@ -596,12 +596,12 @@
 }
 
-void UISnapshotPane::sltHandleSnapshotTake(QString strMachineId, QString strSnapshotId)
+void UISnapshotPane::sltHandleSnapshotTake(const QUuid &aMachineId, const QUuid &aSnapshotId)
 {
     /* Make sure it's our VM: */
-    if (strMachineId != m_strMachineId)
+    if (aMachineId != m_uMachineId)
         return;
 
     LogRel(("GUI: Updating snapshot tree after TAKING snapshot with MachineID={%s}, SnapshotID={%s}...\n",
-            strMachineId.toUtf8().constData(), strSnapshotId.toUtf8().constData()));
+            aMachineId.toString().toUtf8().constData(), aSnapshotId.toString().toUtf8().constData()));
 
     /* Prepare result: */
@@ -612,10 +612,10 @@
 
         /* Search for corresponding snapshot: */
-        CSnapshot comSnapshot = m_comMachine.FindSnapshot(strSnapshotId);
+        CSnapshot comSnapshot = m_comMachine.FindSnapshot(aSnapshotId.toString());
         fSuccess = m_comMachine.isOk() && !comSnapshot.isNull();
 
         /* Show error message if necessary: */
         if (!fSuccess)
-            msgCenter().cannotFindSnapshotById(m_comMachine, strSnapshotId, this);
+            msgCenter().cannotFindSnapshotById(m_comMachine, aSnapshotId, this);
         else
         {
@@ -628,5 +628,5 @@
             {
                 /* Acquire parent snapshot id: */
-                const QString strParentSnapshotId = comParentSnapshot.GetId();
+                const QUuid uParentSnapshotId = comParentSnapshot.GetId();
                 fSuccess = comParentSnapshot.isOk();
 
@@ -637,5 +637,5 @@
                 {
                     /* Search for an existing parent-item with such id: */
-                    pParentItem = findItem(strParentSnapshotId);
+                    pParentItem = findItem(uParentSnapshotId);
                     fSuccess = pParentItem;
                 }
@@ -692,12 +692,12 @@
 }
 
-void UISnapshotPane::sltHandleSnapshotDelete(QString strMachineId, QString strSnapshotId)
+void UISnapshotPane::sltHandleSnapshotDelete(const QUuid &aMachineId, const QUuid &aSnapshotId)
 {
     /* Make sure it's our VM: */
-    if (strMachineId != m_strMachineId)
+    if (aMachineId != m_uMachineId)
         return;
 
     LogRel(("GUI: Updating snapshot tree after DELETING snapshot with MachineID={%s}, SnapshotID={%s}...\n",
-            strMachineId.toUtf8().constData(), strSnapshotId.toUtf8().constData()));
+            aMachineId.toString().toUtf8().constData(), aSnapshotId.toString().toUtf8().constData()));
 
     /* Prepare result: */
@@ -708,5 +708,5 @@
 
         /* Search for an existing item with such id: */
-        UISnapshotItem *pItem = findItem(strSnapshotId);
+        UISnapshotItem *pItem = findItem(aSnapshotId);
         fSuccess = pItem;
 
@@ -774,12 +774,12 @@
 }
 
-void UISnapshotPane::sltHandleSnapshotChange(QString strMachineId, QString strSnapshotId)
+void UISnapshotPane::sltHandleSnapshotChange(const QUuid &aMachineId, const QUuid &aSnapshotId)
 {
     /* Make sure it's our VM: */
-    if (strMachineId != m_strMachineId)
+    if (aMachineId != m_uMachineId)
         return;
 
     LogRel(("GUI: Updating snapshot tree after CHANGING snapshot with MachineID={%s}, SnapshotID={%s}...\n",
-            strMachineId.toUtf8().constData(), strSnapshotId.toUtf8().constData()));
+            aMachineId.toString().toUtf8().constData(), aSnapshotId.toString().toUtf8().constData()));
 
     /* Prepare result: */
@@ -790,5 +790,5 @@
 
         /* Search for an existing item with such id: */
-        UISnapshotItem *pItem = findItem(strSnapshotId);
+        UISnapshotItem *pItem = findItem(aSnapshotId);
         fSuccess = pItem;
 
@@ -814,12 +814,12 @@
 }
 
-void UISnapshotPane::sltHandleSnapshotRestore(QString strMachineId, QString strSnapshotId)
+void UISnapshotPane::sltHandleSnapshotRestore(const QUuid &aMachineId, const QUuid &aSnapshotId)
 {
     /* Make sure it's our VM: */
-    if (strMachineId != m_strMachineId)
+    if (aMachineId != m_uMachineId)
         return;
 
     LogRel(("GUI: Updating snapshot tree after RESTORING snapshot with MachineID={%s}, SnapshotID={%s}...\n",
-            strMachineId.toUtf8().constData(), strSnapshotId.toUtf8().constData()));
+            aMachineId.toString().toUtf8().constData(), aSnapshotId.toString().toUtf8().constData()));
 
     /* Prepare result: */
@@ -830,5 +830,5 @@
 
         /* Search for an existing item with such id: */
-        UISnapshotItem *pItem = findItem(strSnapshotId);
+        UISnapshotItem *pItem = findItem(aSnapshotId);
         fSuccess = pItem;
 
@@ -924,7 +924,7 @@
         CSession comSession;
         if (m_enmSessionState != KSessionState_Unlocked)
-            comSession = vboxGlobal().openExistingSession(m_strMachineId);
+            comSession = vboxGlobal().openExistingSession(m_uMachineId);
         else
-            comSession = vboxGlobal().openSession(m_strMachineId);
+            comSession = vboxGlobal().openSession(m_uMachineId);
         if (comSession.isNotNull())
         {
@@ -936,8 +936,8 @@
             {
                 /* Take snapshot: */
-                QString strSnapshotId;
+                QUuid uSnapshotId;
                 CProgress comProgress = comMachine.TakeSnapshot(newData.m_strName,
                                                                 newData.m_strDescription,
-                                                                true, strSnapshotId);
+                                                                true, uSnapshotId);
                 if (!comMachine.isOk())
                 {
@@ -980,7 +980,7 @@
         CSession comSession;
         if (m_enmSessionState != KSessionState_Unlocked)
-            comSession = vboxGlobal().openExistingSession(m_strMachineId);
+            comSession = vboxGlobal().openExistingSession(m_uMachineId);
         else
-            comSession = vboxGlobal().openSession(m_strMachineId);
+            comSession = vboxGlobal().openSession(m_uMachineId);
         if (comSession.isNotNull())
         {
@@ -1335,11 +1335,11 @@
 
     /* Remember the selected item and it's first child: */
-    QString strSelectedItem, strFirstChildOfSelectedItem;
+    QUuid uSelectedItem, uFirstChildOfSelectedItem;
     const UISnapshotItem *pSnapshotItem = UISnapshotItem::toSnapshotItem(m_pSnapshotTree->currentItem());
     if (pSnapshotItem)
     {
-        strSelectedItem = pSnapshotItem->snapshotID();
+        uSelectedItem = pSnapshotItem->snapshotID();
         if (pSnapshotItem->child(0))
-            strFirstChildOfSelectedItem = UISnapshotItem::toSnapshotItem(pSnapshotItem->child(0))->snapshotID();
+            uFirstChildOfSelectedItem = UISnapshotItem::toSnapshotItem(pSnapshotItem->child(0))->snapshotID();
     }
 
@@ -1363,7 +1363,7 @@
 
         /* Search for a previously selected item: */
-        UISnapshotItem *pCurrentItem = findItem(strSelectedItem);
+        UISnapshotItem *pCurrentItem = findItem(uSelectedItem);
         if (pCurrentItem == 0)
-            pCurrentItem = findItem(strFirstChildOfSelectedItem);
+            pCurrentItem = findItem(uFirstChildOfSelectedItem);
         if (pCurrentItem == 0)
             pCurrentItem = m_pCurrentStateItem;
@@ -1513,7 +1513,7 @@
         CSession comSession;
         if (m_enmSessionState != KSessionState_Unlocked)
-            comSession = vboxGlobal().openExistingSession(m_strMachineId);
+            comSession = vboxGlobal().openExistingSession(m_uMachineId);
         else
-            comSession = vboxGlobal().openSession(m_strMachineId);
+            comSession = vboxGlobal().openSession(m_uMachineId);
         if (comSession.isNull())
             break;
@@ -1580,6 +1580,6 @@
 
             /* Take snapshot: */
-            QString strSnapshotId;
-            CProgress comProgress = comMachine.TakeSnapshot(strFinalName, strFinalDescription, true, strSnapshotId);
+            QUuid uSnapshotId;
+            CProgress comProgress = comMachine.TakeSnapshot(strFinalName, strFinalDescription, true, uSnapshotId);
             if (!comMachine.isOk())
             {
@@ -1647,7 +1647,7 @@
         CSession comSession;
         if (m_enmSessionState != KSessionState_Unlocked)
-            comSession = vboxGlobal().openExistingSession(m_strMachineId);
+            comSession = vboxGlobal().openExistingSession(m_uMachineId);
         else
-            comSession = vboxGlobal().openSession(m_strMachineId);
+            comSession = vboxGlobal().openSession(m_uMachineId);
         if (comSession.isNull())
             break;
@@ -1727,5 +1727,5 @@
 
         /* Open a direct session (this call will handle all errors): */
-        CSession comSession = vboxGlobal().openSession(m_strMachineId);
+        CSession comSession = vboxGlobal().openSession(m_uMachineId);
         if (comSession.isNull())
             break;
@@ -1813,5 +1813,5 @@
 }
 
-UISnapshotItem *UISnapshotPane::findItem(const QString &strSnapshotID) const
+UISnapshotItem *UISnapshotPane::findItem(const QUuid &aSnapshotID) const
 {
     /* Search for the first item with required ID: */
@@ -1820,5 +1820,5 @@
     {
         UISnapshotItem *pSnapshotItem = UISnapshotItem::toSnapshotItem(*it);
-        if (pSnapshotItem->snapshotID() == strSnapshotID)
+        if (pSnapshotItem->snapshotID() == aSnapshotID)
             return pSnapshotItem;
         ++it;
Index: trunk/src/VBox/Frontends/VirtualBox/src/snapshots/UISnapshotPane.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/snapshots/UISnapshotPane.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/snapshots/UISnapshotPane.h	(revision 74878)
@@ -87,19 +87,19 @@
       * @{ */
         /** Handles machine data change for machine with @a strMachineId. */
-        void sltHandleMachineDataChange(QString strMachineId);
+        void sltHandleMachineDataChange(const QUuid &aMachineId);
         /** Handles machine @a enmState change for machine with @a strMachineId. */
-        void sltHandleMachineStateChange(QString strMachineId, KMachineState enmState);
+        void sltHandleMachineStateChange(const QUuid &aMachineId, const KMachineState enmState);
 
         /** Handles session @a enmState change for machine with @a strMachineId. */
-        void sltHandleSessionStateChange(QString strMachineId, KSessionState enmState);
+        void sltHandleSessionStateChange(const QUuid &aMachineId, const KSessionState enmState);
 
         /** Handles snapshot take event for machine with @a strMachineId. */
-        void sltHandleSnapshotTake(QString strMachineId, QString strSnapshotId);
+        void sltHandleSnapshotTake(const QUuid &aMachineId, const QUuid &aSnapshotId);
         /** Handles snapshot delete event for machine with @a strMachineId. */
-        void sltHandleSnapshotDelete(QString strMachineId, QString strSnapshotId);
+        void sltHandleSnapshotDelete(const QUuid &aMachineId, const QUuid &aSnapshotId);
         /** Handles snapshot change event for machine with @a strMachineId. */
-        void sltHandleSnapshotChange(QString strMachineId, QString strSnapshotId);
+        void sltHandleSnapshotChange(const QUuid &aMachineId, const QUuid &aSnapshotId);
         /** Handles snapshot restore event for machine with @a strMachineId. */
-        void sltHandleSnapshotRestore(QString strMachineId, QString strSnapshotId);
+        void sltHandleSnapshotRestore(const QUuid &aMachineId, const QUuid &aSnapshotId);
     /** @} */
 
@@ -189,5 +189,5 @@
 
         /** Searches for an item with corresponding @a strSnapshotID. */
-        UISnapshotItem *findItem(const QString &strSnapshotID) const;
+        UISnapshotItem *findItem(const QUuid &aSnapshotID) const;
 
         /** Searches for smallest snapshot age starting with @a pItem as parent. */
@@ -207,5 +207,5 @@
         CMachine       m_comMachine;
         /** Holds the machine object ID. */
-        QString        m_strMachineId;
+        QUuid        m_uMachineId;
         /** Holds the cached session state. */
         KSessionState  m_enmSessionState;
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIAddDiskEncryptionPasswordDialog.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIAddDiskEncryptionPasswordDialog.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIAddDiskEncryptionPasswordDialog.cpp	(revision 74878)
@@ -55,4 +55,12 @@
 };
 
+template<class T>
+static QStringList toStringList(const QList<T> &list)
+{
+    QStringList l;
+    foreach(const T &t, list)
+        l << t.toString();
+    return l;
+}
 
 /** QLineEdit extension used as
@@ -315,5 +323,5 @@
             /* We are generating tool-tip here and not in retranslateUi() because of the tricky plural form handling,
              * but be quiet, it's safe enough because the tool-tip being re-acquired every time on mouse-hovering. */
-            const QStringList encryptedMedia = m_encryptedMedia.values(m_encryptionPasswords.keys().at(index.row()));
+            const QList<QUuid> encryptedMedia = m_encryptedMedia.values(m_encryptionPasswords.keys().at(index.row()));
             return UIAddDiskEncryptionPasswordDialog::tr("<nobr>Used by the following %n hard disk(s):</nobr><br>%1",
                                                          "This text is never used with n == 0. "
@@ -323,5 +331,5 @@
                                                          "and doesn't need to be told).",
                                                          encryptedMedia.size())
-                                                         .arg(encryptedMedia.join("<br>"));
+                                                         .arg(toStringList(encryptedMedia).join("<br>"));
         }
         default:
@@ -500,7 +508,7 @@
     foreach (const QString &strPasswordId, m_encryptedMedia.uniqueKeys())
     {
-        const QString strMediumId = m_encryptedMedia.values(strPasswordId).first();
+        const QUuid uMediumId = m_encryptedMedia.values(strPasswordId).first();
         const QString strPassword = m_pTableEncryptionData->encryptionPasswords().value(strPasswordId);
-        if (!isPasswordValid(strMediumId, strPassword))
+        if (!isPasswordValid(uMediumId, strPassword))
         {
             msgCenter().warnAboutInvalidEncryptionPassword(strPasswordId, this);
@@ -569,8 +577,8 @@
 
 /* static */
-bool UIAddDiskEncryptionPasswordDialog::isPasswordValid(const QString strMediumId, const QString strPassword)
+bool UIAddDiskEncryptionPasswordDialog::isPasswordValid(const QUuid &aMediumId, const QString strPassword)
 {
     /* Look for the medium with passed ID: */
-    const UIMedium uimedium = vboxGlobal().medium(strMediumId);
+    const UIMedium uimedium = vboxGlobal().medium(aMediumId);
     if (!uimedium.isNull())
     {
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIAddDiskEncryptionPasswordDialog.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIAddDiskEncryptionPasswordDialog.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIAddDiskEncryptionPasswordDialog.h	(revision 74878)
@@ -34,5 +34,5 @@
 
 /* Type definitions: */
-typedef QMultiMap<QString, QString> EncryptedMediumMap;
+typedef QMultiMap<QString, QUuid> EncryptedMediumMap;
 typedef QMap<QString, QString> EncryptionPasswordMap;
 typedef QMap<QString, bool> EncryptionPasswordStatusMap;
@@ -76,5 +76,5 @@
 
     /** Returns whether passed @a strPassword is valid for medium with passed @a strMediumId. */
-    static bool isPasswordValid(const QString strMediumId, const QString strPassword);
+    static bool isPasswordValid(const QUuid &aMediumId, const QString strPassword);
 
     /** Holds the name of the machine we show this dialog for. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMediaComboBox.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMediaComboBox.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMediaComboBox.cpp	(revision 74878)
@@ -35,6 +35,6 @@
     : QComboBox(pParent)
     , m_enmMediaType(UIMediumDeviceType_Invalid)
-    , m_strMachineId(QString())
-    , m_strLastItemId(QString())
+    , m_uMachineId(QUuid())
+    , m_uLastItemId(QUuid())
 {
     /* Prepare: */
@@ -48,6 +48,6 @@
 
     /* Use the medium creation handler to add all the items:  */
-    foreach (const QString &strMediumId, vboxGlobal().mediumIDs())
-        sltHandleMediumCreated(strMediumId);
+    foreach (const QUuid &uMediumId, vboxGlobal().mediumIDs())
+        sltHandleMediumCreated(uMediumId);
 
     /* If at least one real medium present, remove null medium: */
@@ -70,7 +70,7 @@
 }
 
-void UIMediaComboBox::setCurrentItem(const QString &strItemId)
-{
-    m_strLastItemId = strItemId;
+void UIMediaComboBox::setCurrentItem(const QUuid &aItemId)
+{
+    m_uLastItemId = aItemId;
 
     int iIndex;
@@ -78,5 +78,5 @@
     // Note that the media combo-box may be not populated here yet,
     // so we don't assert..
-    if (findMediaIndex(strItemId, iIndex))
+    if (findMediaIndex(aItemId, iIndex))
     {
         QComboBox::setCurrentIndex(iIndex);
@@ -85,5 +85,16 @@
 }
 
-QString UIMediaComboBox::id(int iIndex /* = -1 */) const
+QUuid UIMediaComboBox::id(int iIndex /* = -1 */) const
+{
+    AssertReturn(iIndex == -1 ||
+                 (iIndex >= 0 && iIndex < m_media.size()),
+                  QUuid());
+
+    if (iIndex == -1)
+        iIndex = currentIndex();
+    return iIndex == -1 ? QUuid() : m_media.at(iIndex).id;
+}
+
+QString UIMediaComboBox::location(int iIndex /* = -1 */) const
 {
     AssertReturn(iIndex == -1 ||
@@ -93,22 +104,11 @@
     if (iIndex == -1)
         iIndex = currentIndex();
-    return iIndex == -1 ? QString() : m_media.at(iIndex).id;
-}
-
-QString UIMediaComboBox::location(int iIndex /* = -1 */) const
-{
-    AssertReturn(iIndex == -1 ||
-                 (iIndex >= 0 && iIndex < m_media.size()),
-                  QString());
-
-    if (iIndex == -1)
-        iIndex = currentIndex();
     return iIndex == -1 ? QString() : m_media.at(iIndex).location;
 }
 
-void UIMediaComboBox::sltHandleMediumCreated(const QString &strMediumId)
+void UIMediaComboBox::sltHandleMediumCreated(const QUuid &aMediumId)
 {
     /* Search for corresponding medium: */
-    UIMedium guiMedium = vboxGlobal().medium(strMediumId);
+    UIMedium guiMedium = vboxGlobal().medium(aMediumId);
 
     /* Ignore media (and their children) which are
@@ -129,5 +129,5 @@
 
     /* Activate the required item if any: */
-    if (guiMedium.id() == m_strLastItemId)
+    if (guiMedium.id() == m_uLastItemId)
         setCurrentItem(guiMedium.id());
     /* Select last added item if there is no item selected: */
@@ -136,8 +136,8 @@
 }
 
-void UIMediaComboBox::sltHandleMediumEnumerated(const QString &strMediumId)
+void UIMediaComboBox::sltHandleMediumEnumerated(const QUuid &aMediumId)
 {
     /* Search for corresponding medium: */
-    UIMedium guiMedium = vboxGlobal().medium(strMediumId);
+    UIMedium guiMedium = vboxGlobal().medium(aMediumId);
 
     /* Add only 1. NULL medium and 2. media of required type: */
@@ -157,9 +157,9 @@
 }
 
-void UIMediaComboBox::sltHandleMediumDeleted(const QString &strMediumId)
+void UIMediaComboBox::sltHandleMediumDeleted(const QUuid &aMediumId)
 {
     /* Search for corresponding item index: */
     int iIndex;
-    if (!findMediaIndex(strMediumId, iIndex))
+    if (!findMediaIndex(aMediumId, iIndex))
         return;
 
@@ -185,5 +185,5 @@
     AssertReturnVoid(iIndex >= 0 && iIndex < m_media.size());
 
-    m_strLastItemId = m_media.at(iIndex).id;
+    m_uLastItemId = m_media.at(iIndex).id;
 
     updateToolTip(iIndex);
@@ -256,10 +256,10 @@
 }
 
-bool UIMediaComboBox::findMediaIndex(const QString &strId, int &iIndex)
+bool UIMediaComboBox::findMediaIndex(const QUuid &aId, int &iIndex)
 {
     iIndex = 0;
 
     for (; iIndex < m_media.size(); ++ iIndex)
-        if (m_media.at(iIndex).id == strId)
+        if (m_media.at(iIndex).id == aId)
             break;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMediaComboBox.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMediaComboBox.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMediaComboBox.h	(revision 74878)
@@ -51,11 +51,11 @@
 
     /** Defines @a strMachineId. */
-    void setMachineId(const QString &strMachineId) { m_strMachineId = strMachineId; }
+    void setMachineId(const QUuid &aMachineId) { m_uMachineId = aMachineId; }
 
     /** Defines current item through @a strItemId. */
-    void setCurrentItem(const QString &strItemId);
+    void setCurrentItem(const QUuid &aItemId);
 
     /** Returns id of item with certain @a iIndex. */
-    QString id(int iIndex = -1) const;
+    QUuid id(int iIndex = -1) const;
     /** Returns location of item with certain @a iIndex. */
     QString location(int iIndex = -1) const;
@@ -64,9 +64,9 @@
 
     /** Habdles medium-created signal for medium with @a strMediumId. */
-    void sltHandleMediumCreated(const QString &strMediumId);
+    void sltHandleMediumCreated(const QUuid &aMediumId);
     /** Habdles medium-enumerated signal for medium with @a strMediumId. */
-    void sltHandleMediumEnumerated(const QString &strMediumId);
+    void sltHandleMediumEnumerated(const QUuid &aMediumId);
     /** Habdles medium-deleted signal for medium with @a strMediumId. */
-    void sltHandleMediumDeleted(const QString &strMediumId);
+    void sltHandleMediumDeleted(const QUuid &aMediumId);
 
     /** Handles medium enumeration start. */
@@ -93,5 +93,5 @@
 
     /** Searches for a @a iIndex of medium with certain @a strId. */
-    bool findMediaIndex(const QString &strId, int &iIndex);
+    bool findMediaIndex(const QUuid &aId, int &iIndex);
 
     /** Holds the media type. */
@@ -99,5 +99,5 @@
 
     /** Holds the machine ID. */
-    QString  m_strMachineId;
+    QUuid  m_uMachineId;
 
     /** Simplified media description. */
@@ -105,11 +105,11 @@
     {
         Medium() {}
-        Medium(const QString &strId,
+        Medium(const QUuid &aId,
                const QString &strLocation,
                const QString &strToolTip)
-            : id(strId), location(strLocation), toolTip(strToolTip)
+            : id(aId), location(strLocation), toolTip(strToolTip)
         {}
 
-        QString  id;
+        QUuid    id;
         QString  location;
         QString  toolTip;
@@ -122,5 +122,5 @@
 
     /** Holds the last chosen medium ID. */
-    QString  m_strLastItemId;
+    QUuid  m_uLastItemId;
 };
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMenuBarEditorWindow.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMenuBarEditorWindow.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMenuBarEditorWindow.cpp	(revision 74878)
@@ -327,10 +327,10 @@
 UIMenuBarEditorWidget::UIMenuBarEditorWidget(QWidget *pParent,
                                              bool fStartedFromVMSettings /* = true */,
-                                             const QString &strMachineID /* = QString() */,
+                                             const QUuid &aMachineID /* = QUuid() */,
                                              UIActionPool *pActionPool /* = 0 */)
     : QIWithRetranslateUI2<QWidget>(pParent)
     , m_fPrepared(false)
     , m_fStartedFromVMSettings(fStartedFromVMSettings)
-    , m_strMachineID(strMachineID)
+    , m_uMachineID(aMachineID)
     , m_pActionPool(pActionPool)
     , m_pMainLayout(0)
@@ -359,8 +359,8 @@
 }
 
-void UIMenuBarEditorWidget::setMachineID(const QString &strMachineID)
+void UIMenuBarEditorWidget::setMachineID(const QUuid &aMachineID)
 {
     /* Remember new machine ID: */
-    m_strMachineID = strMachineID;
+    m_uMachineID = aMachineID;
     /* Prepare: */
     prepare();
@@ -747,8 +747,8 @@
 }
 
-void UIMenuBarEditorWidget::sltHandleConfigurationChange(const QString &strMachineID)
+void UIMenuBarEditorWidget::sltHandleConfigurationChange(const QUuid &aMachineID)
 {
     /* Skip unrelated machine IDs: */
-    if (machineID() != strMachineID)
+    if (machineID() != aMachineID)
         return;
 
@@ -963,5 +963,5 @@
 
     /* Do not prepare if machine ID or action-pool is not set: */
-    if (m_strMachineID.isEmpty() || !m_pActionPool)
+    if (m_uMachineID.isNull() || !m_pActionPool)
         return;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMenuBarEditorWindow.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMenuBarEditorWindow.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMenuBarEditorWindow.h	(revision 74878)
@@ -21,4 +21,5 @@
 /* Qt includes: */
 #include <QMap>
+#include <QUuid>
 
 /* GUI includes: */
@@ -77,11 +78,11 @@
     UIMenuBarEditorWidget(QWidget *pParent,
                           bool fStartedFromVMSettings = true,
-                          const QString &strMachineID = QString(),
+                          const QUuid &aMachineID = QUuid(),
                           UIActionPool *pActionPool = 0);
 
     /** Returns the machine ID instance. */
-    const QString &machineID() const { return m_strMachineID; }
+    const QUuid &machineID() const { return m_uMachineID; }
     /** Defines the @a strMachineID instance. */
-    void setMachineID(const QString &strMachineID);
+    void setMachineID(const QUuid &aMachineID);
 
     /** Returns the action-pool reference. */
@@ -154,5 +155,5 @@
 
     /** Handles configuration change. */
-    void sltHandleConfigurationChange(const QString &strMachineID);
+    void sltHandleConfigurationChange(const QUuid &aMachineID);
 
     /** Handles menu-bar menu click. */
@@ -210,5 +211,5 @@
         bool                m_fStartedFromVMSettings;
         /** Holds the machine ID instance. */
-        QString             m_strMachineID;
+        QUuid               m_uMachineID;
         /** Holds the action-pool reference. */
         const UIActionPool *m_pActionPool;
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.cpp	(revision 74878)
@@ -59,7 +59,7 @@
 
     /** Notifies about @a iPercent change for progress with @a strProgressId. */
-    void sigProgressPercentageChange(QString strProgressId, int iPercent);
+    void sigProgressPercentageChange(const QUuid &aProgressId, const int iPercent);
     /** Notifies about task complete for progress with @a strProgressId. */
-    void sigProgressTaskComplete(QString strProgressId);
+    void sigProgressTaskComplete(const QUuid &aProgressId);
 
 public:
@@ -331,5 +331,5 @@
 }
 
-void UIProgressDialog::sltHandleProgressPercentageChange(QString, int iPercent)
+void UIProgressDialog::sltHandleProgressPercentageChange(const QUuid &, const int iPercent)
 {
     /* New mode only: */
@@ -341,5 +341,5 @@
 }
 
-void UIProgressDialog::sltHandleProgressTaskComplete(QString)
+void UIProgressDialog::sltHandleProgressTaskComplete(const QUuid &)
 {
     /* New mode only: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.h	(revision 74878)
@@ -89,7 +89,7 @@
 
     /** Handles percentage changed event for progress with @a strProgressId to @a iPercent. */
-    void sltHandleProgressPercentageChange(QString strProgressId, int iPercent);
+    void sltHandleProgressPercentageChange(const QUuid &aProgressId, const int iPercent);
     /** Handles task completed event for progress with @a strProgressId. */
-    void sltHandleProgressTaskComplete(QString strProgressId);
+    void sltHandleProgressTaskComplete(const QUuid &aProgressId);
 
     /** Handles window stack changed signal. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIStatusBarEditorWindow.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIStatusBarEditorWindow.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIStatusBarEditorWindow.cpp	(revision 74878)
@@ -410,9 +410,9 @@
 UIStatusBarEditorWidget::UIStatusBarEditorWidget(QWidget *pParent,
                                                  bool fStartedFromVMSettings /* = true */,
-                                                 const QString &strMachineID /* = QString() */)
+                                                 const QUuid &aMachineID /* = QString() */)
     : QIWithRetranslateUI2<QWidget>(pParent)
     , m_fPrepared(false)
     , m_fStartedFromVMSettings(fStartedFromVMSettings)
-    , m_strMachineID(strMachineID)
+    , m_uMachineID(aMachineID)
     , m_pMainLayout(0), m_pButtonLayout(0)
     , m_pButtonClose(0)
@@ -425,8 +425,8 @@
 }
 
-void UIStatusBarEditorWidget::setMachineID(const QString &strMachineID)
+void UIStatusBarEditorWidget::setMachineID(const QUuid &aMachineID)
 {
     /* Remember new machine ID: */
-    m_strMachineID = strMachineID;
+    m_uMachineID = aMachineID;
     /* Prepare: */
     prepare();
@@ -690,8 +690,8 @@
 }
 
-void UIStatusBarEditorWidget::sltHandleConfigurationChange(const QString &strMachineID)
+void UIStatusBarEditorWidget::sltHandleConfigurationChange(const QUuid &aMachineID)
 {
     /* Skip unrelated machine IDs: */
-    if (machineID() != strMachineID)
+    if (machineID() != aMachineID)
         return;
 
@@ -744,5 +744,5 @@
 
     /* Do not prepare if machine ID is not set: */
-    if (m_strMachineID.isEmpty())
+    if (m_uMachineID.isNull())
         return;
 
@@ -851,6 +851,6 @@
                                   gEDataManager->statusBarIndicatorOrder(machineID()));
         /* And listen for the status-bar configuration changes after that: */
-        connect(gEDataManager, SIGNAL(sigStatusBarConfigurationChange(const QString&)),
-                this, SLOT(sltHandleConfigurationChange(const QString&)));
+        connect(gEDataManager, SIGNAL(sigStatusBarConfigurationChange(const QUuid &)),
+                this, SLOT(sltHandleConfigurationChange(const QUuid &)));
     }
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIStatusBarEditorWindow.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIStatusBarEditorWindow.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIStatusBarEditorWindow.h	(revision 74878)
@@ -22,4 +22,5 @@
 #include <QList>
 #include <QMap>
+#include <QUuid>
 
 /* GUI includes: */
@@ -75,10 +76,10 @@
     UIStatusBarEditorWidget(QWidget *pParent,
                             bool fStartedFromVMSettings = true,
-                            const QString &strMachineID = QString());
+                            const QUuid &aMachineID = QUuid());
 
     /** Returns the machine ID instance. */
-    const QString &machineID() const { return m_strMachineID; }
+    const QUuid &machineID() const { return m_uMachineID; }
     /** Defines the @a strMachineID instance. */
-    void setMachineID(const QString &strMachineID);
+    void setMachineID(const QUuid &aMachineID);
 
     /** Returns whether the status-bar enabled. */
@@ -114,5 +115,5 @@
 
     /** Handles configuration change. */
-    void sltHandleConfigurationChange(const QString &strMachineID);
+    void sltHandleConfigurationChange(const QUuid &aMachineID);
 
     /** Handles button click. */
@@ -141,5 +142,5 @@
         bool     m_fStartedFromVMSettings;
         /** Holds the machine ID instance. */
-        QString  m_strMachineID;
+        QUuid  m_uMachineID;
     /** @} */
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevd/UIWizardCloneVDPageBasic1.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevd/UIWizardCloneVDPageBasic1.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevd/UIWizardCloneVDPageBasic1.cpp	(revision 74878)
@@ -45,9 +45,9 @@
     const UIMediumDeviceType enmMediumType = UIMediumDefs::mediumTypeToLocal(sourceVirtualDisk().GetDeviceType());
     /* Get source virtual-disk using file-open dialog: */
-    QString strMediumId = vboxGlobal().openMediumWithFileOpenDialog(enmMediumType, thisImp());
-    if (!strMediumId.isNull())
+    QUuid uMediumId = vboxGlobal().openMediumWithFileOpenDialog(enmMediumType, thisImp());
+    if (!uMediumId.isNull())
     {
         /* Update medium-combo if necessary: */
-        m_pSourceDiskSelector->setCurrentItem(strMediumId);
+        m_pSourceDiskSelector->setCurrentItem(uMediumId);
         /* Focus on virtual-disk combo: */
         m_pSourceDiskSelector->setFocus();
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVM.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVM.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVM.cpp	(revision 74878)
@@ -88,6 +88,6 @@
         /* Take the snapshot: */
         QString strSnapshotName = tr("Linked Base for %1 and %2").arg(m_machine.GetName()).arg(strName);
-        QString strSnapshotId;
-        CProgress progress = machine.TakeSnapshot(strSnapshotName, "", true, strSnapshotId);
+        QUuid uSnapshotId;
+        CProgress progress = machine.TakeSnapshot(strSnapshotName, "", true, uSnapshotId);
 
         if (machine.isOk())
@@ -112,5 +112,5 @@
 
         /* Get the new snapshot and the snapshot machine. */
-        const CSnapshot &newSnapshot = m_machine.FindSnapshot(strSnapshotId);
+        const CSnapshot &newSnapshot = m_machine.FindSnapshot(uSnapshotId.toString());
         if (newSnapshot.isNull())
         {
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportApp.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportApp.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportApp.cpp	(revision 74878)
@@ -239,6 +239,6 @@
     EncryptedMediumMap encryptedMedia;
     foreach (const QString &strPasswordId, comAppliance.GetPasswordIds())
-        foreach (const QString &strMediumId, comAppliance.GetMediumIdsForPasswordId(strPasswordId))
-            encryptedMedia.insert(strPasswordId, strMediumId);
+        foreach (const QUuid &uMediumId, comAppliance.GetMediumIdsForPasswordId(strPasswordId))
+            encryptedMedia.insert(strPasswordId, uMediumId);
 
     /* Ask for the disk encryption passwords if necessary: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppDefs.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppDefs.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppDefs.h	(revision 74878)
@@ -39,7 +39,7 @@
       * @param  strUuid       Brings the machine ID.
       * @param  fInSaveState  Brings whether machine is in Saved state. */
-    UIVMListWidgetItem(QPixmap &pixIcon, QString &strText, QString strUuid, bool fInSaveState, QListWidget *pParent)
+    UIVMListWidgetItem(QPixmap &pixIcon, QString &strText, QUuid aUuid, bool fInSaveState, QListWidget *pParent)
         : QListWidgetItem(pixIcon, strText, pParent)
-        , m_strUuid(strUuid)
+        , m_uUuid(aUuid)
         , m_fInSaveState(fInSaveState)
     {}
@@ -52,5 +52,5 @@
 
     /** Returns the machine ID. */
-    QString uuid() const { return m_strUuid; }
+    QUuid uuid() const { return m_uUuid; }
     /** Returns whether machine is in Saved state. */
     bool isInSaveState() const { return m_fInSaveState; }
@@ -59,5 +59,5 @@
 
     /** Holds the machine ID. */
-    QString  m_strUuid;
+    QUuid    m_uUuid;
     /** Holds whether machine is in Saved state. */
     bool     m_fInSaveState;
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic1.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic1.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic1.cpp	(revision 74878)
@@ -53,5 +53,5 @@
         QPixmap pixIcon;
         QString strName;
-        QString strUuid;
+        QUuid uUuid;
         bool fInSaveState = false;
         bool fEnabled = false;
@@ -64,5 +64,5 @@
                 pixIcon = vboxGlobal().vmGuestOSTypePixmapDefault(machine.GetOSTypeId());
             strName = machine.GetName();
-            strUuid = machine.GetId();
+            uUuid = machine.GetId();
             fEnabled = machine.GetSessionState() == KSessionState_Unlocked;
             fInSaveState = machine.GetState() == KMachineState_Saved;
@@ -75,5 +75,5 @@
             pixIcon = QPixmap(":/os_other.png").scaled(iIconMetric, iIconMetric, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
         }
-        QListWidgetItem *pItem = new UIVMListWidgetItem(pixIcon, strName, strUuid, fInSaveState, m_pVMSelector);
+        QListWidgetItem *pItem = new UIVMListWidgetItem(pixIcon, strName, uUuid, fInSaveState, m_pVMSelector);
         if (!fEnabled)
             pItem->setFlags(0);
@@ -107,11 +107,11 @@
 }
 
-QStringList UIWizardExportAppPage1::machineIDs() const
+QList<QUuid> UIWizardExportAppPage1::machineIDs() const
 {
     /* Prepare list: */
-    QStringList machineIDs;
+    QList<QUuid> machineIDs;
     /* Iterate over all the selected items: */
     foreach (QListWidgetItem *pItem, m_pVMSelector->selectedItems())
-        machineIDs << static_cast<UIVMListWidgetItem*>(pItem)->uuid();
+        machineIDs.append(static_cast<UIVMListWidgetItem*>(pItem)->uuid());
     /* Return result list: */
     return machineIDs;
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic1.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic1.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic1.h	(revision 74878)
@@ -18,4 +18,7 @@
 #ifndef ___UIWizardExportAppPageBasic1_h___
 #define ___UIWizardExportAppPageBasic1_h___
+
+/* Qt includes */
+#include <QUuid>
 
 /* GUI includes: */
@@ -41,5 +44,5 @@
     QStringList machineNames() const;
     /** Returns a list of selected machine IDs. */
-    QStringList machineIDs() const;
+    QList<QUuid> machineIDs() const;
 
     /** Holds the VM selector instance. */
@@ -53,5 +56,5 @@
     Q_OBJECT;
     Q_PROPERTY(QStringList machineNames READ machineNames);
-    Q_PROPERTY(QStringList machineIDs READ machineIDs);
+    Q_PROPERTY(QList<QUuid> machineIDs READ machineIDs);
 
 public:
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic2.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic2.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic2.cpp	(revision 74878)
@@ -439,15 +439,15 @@
 }
 
-void UIWizardExportAppPage2::setProviderById(const QString &strId)
-{
-    const int iIndex = m_pFormatComboBox->findData(strId, FormatData_ID);
+void UIWizardExportAppPage2::setProviderById(const QUuid &aId)
+{
+    const int iIndex = m_pFormatComboBox->findData(aId, FormatData_ID);
     AssertMsg(iIndex != -1, ("Data not found!"));
     m_pFormatComboBox->setCurrentIndex(iIndex);
 }
 
-QString UIWizardExportAppPage2::providerId() const
+QUuid UIWizardExportAppPage2::providerId() const
 {
     const int iIndex = m_pFormatComboBox->currentIndex();
-    return m_pFormatComboBox->itemData(iIndex, FormatData_ID).toString();
+    return m_pFormatComboBox->itemData(iIndex, FormatData_ID).toUuid();
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic2.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic2.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic2.h	(revision 74878)
@@ -137,7 +137,7 @@
 
     /** Defines provider by @a strId. */
-    void setProviderById(const QString &strId);
+    void setProviderById(const QUuid &strId);
     /** Returns provider ID. */
-    QString providerId() const;
+    QUuid providerId() const;
     /** Returns provider short name. */
     QString providerShortName() const;
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic3.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic3.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic3.cpp	(revision 74878)
@@ -251,9 +251,9 @@
     {
         /* Iterate over all the selected machine ids: */
-        QStringList uuids = fieldImp("machineIDs").toStringList();
-        foreach (const QString &uuid, uuids)
+        QList<QUuid> uuids = fieldImp("machineIDs").value<QList<QUuid> >();
+        foreach (const QUuid &uuid, uuids)
         {
             /* Get the machine with the uuid: */
-            CMachine comMachine = comVBox.FindMachine(uuid);
+            CMachine comMachine = comVBox.FindMachine(uuid.toString());
             if (comVBox.isOk() && comMachine.isNotNull())
             {
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageExpert.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageExpert.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageExpert.h	(revision 74878)
@@ -35,5 +35,5 @@
     Q_OBJECT;
     Q_PROPERTY(QStringList machineNames READ machineNames);
-    Q_PROPERTY(QStringList machineIDs READ machineIDs);
+    Q_PROPERTY(QList<QUuid> machineIDs READ machineIDs);
     Q_PROPERTY(QString format READ format WRITE setFormat);
     Q_PROPERTY(bool isFormatCloudOne READ isFormatCloudOne);
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/firstrun/UIWizardFirstRun.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/firstrun/UIWizardFirstRun.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/firstrun/UIWizardFirstRun.cpp	(revision 74878)
@@ -85,6 +85,6 @@
 
     /* Get chosen 'dvd' medium to mount: */
-    const QString strMediumId = field("id").toString();
-    const UIMedium guiMedium = vboxGlobal().medium(strMediumId);
+    const QUuid uMediumId = field("id").toUuid();
+    const UIMedium guiMedium = vboxGlobal().medium(uMediumId);
     const CMedium comMedium = guiMedium.medium();
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/firstrun/UIWizardFirstRunPageBasic.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/firstrun/UIWizardFirstRunPageBasic.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/firstrun/UIWizardFirstRunPageBasic.cpp	(revision 74878)
@@ -46,21 +46,21 @@
 {
     /* Get opened vboxMedium id: */
-    QString strMediumId = vboxGlobal().openMediumWithFileOpenDialog(m_pMediaSelector->type(), thisImp());
+    QUuid uMediumId = vboxGlobal().openMediumWithFileOpenDialog(m_pMediaSelector->type(), thisImp());
     /* Update medium-combo if necessary: */
-    if (!strMediumId.isNull())
-        m_pMediaSelector->setCurrentItem(strMediumId);
+    if (!uMediumId.isNull())
+        m_pMediaSelector->setCurrentItem(uMediumId);
 }
 
-QString UIWizardFirstRunPage::id() const
+QUuid UIWizardFirstRunPage::id() const
 {
     return m_pMediaSelector->id();
 }
 
-void UIWizardFirstRunPage::setId(const QString &strId)
+void UIWizardFirstRunPage::setId(const QUuid &aId)
 {
-    m_pMediaSelector->setCurrentItem(strId);
+    m_pMediaSelector->setCurrentItem(aId);
 }
 
-UIWizardFirstRunPageBasic::UIWizardFirstRunPageBasic(const QString &strMachineId, bool fBootHardDiskWasSet)
+UIWizardFirstRunPageBasic::UIWizardFirstRunPageBasic(const QUuid &aMachineId, bool fBootHardDiskWasSet)
     : UIWizardFirstRunPage(fBootHardDiskWasSet)
 {
@@ -73,5 +73,5 @@
             m_pMediaSelector = new UIMediaComboBox(this);
             {
-                m_pMediaSelector->setMachineId(strMachineId);
+                m_pMediaSelector->setMachineId(aMachineId);
                 m_pMediaSelector->setType(UIMediumDeviceType_DVD);
                 m_pMediaSelector->repopulate();
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/firstrun/UIWizardFirstRunPageBasic.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/firstrun/UIWizardFirstRunPageBasic.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/firstrun/UIWizardFirstRunPageBasic.h	(revision 74878)
@@ -18,4 +18,7 @@
 #ifndef __UIWizardFirstRunPageBasic_h__
 #define __UIWizardFirstRunPageBasic_h__
+
+/* Qt includes: */
+#include <QUuid>
 
 /* GUI includes: */
@@ -40,6 +43,6 @@
 
     /* Stuff for 'id' field: */
-    QString id() const;
-    void setId(const QString &strId);
+    QUuid id() const;
+    void setId(const QUuid &aId);
 
     /* Variables: */
@@ -56,10 +59,10 @@
     Q_OBJECT;
     Q_PROPERTY(QString source READ source);
-    Q_PROPERTY(QString id READ id WRITE setId);
+    Q_PROPERTY(QUuid id READ id WRITE setId);
 
 public:
 
     /* Constructor: */
-    UIWizardFirstRunPageBasic(const QString &strMachineId, bool fBootHardDiskWasSet);
+    UIWizardFirstRunPageBasic(const QUuid &aMachineId, bool fBootHardDiskWasSet);
 
 protected:
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp	(revision 74878)
@@ -266,15 +266,15 @@
     {
         bool success = false;
-        QString strMachineId = m_machine.GetId();
-        CSession session = vboxGlobal().openSession(strMachineId);
+        QUuid uMachineId = m_machine.GetId();
+        CSession session = vboxGlobal().openSession(uMachineId);
         if (!session.isNull())
         {
             CMachine machine = session.GetMachine();
 
-            QString strId = field("virtualDiskId").toString();
+            QUuid uId = field("virtualDiskId").toUuid();
             /* Boot virtual hard drive: */
-            if (!strId.isNull())
+            if (!uId.isNull())
             {
-                UIMedium vmedium = vboxGlobal().medium(strId);
+                UIMedium vmedium = vboxGlobal().medium(uId);
                 CMedium medium = vmedium.medium();              /// @todo r=dj can this be cached somewhere?
                 machine.AttachDevice(strHDName, 0, 0, KDeviceType_HardDisk, medium);
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h	(revision 74878)
@@ -54,5 +54,5 @@
 
     /** Returns the Id of newly created VM. */
-    QString createdMachineId() const { return m_machine.GetId(); }
+    QUuid createdMachineId() const { return m_machine.GetId(); }
 
 protected:
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic3.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic3.cpp	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic3.cpp	(revision 74878)
@@ -53,5 +53,5 @@
     if (m_pDiskSkip->isChecked())
     {
-        m_strVirtualDiskId = QString();
+        m_uVirtualDiskId = QUuid();
         m_strVirtualDiskName = QString();
         m_strVirtualDiskLocation = QString();
@@ -59,5 +59,5 @@
     else if (m_pDiskPresent->isChecked())
     {
-        m_strVirtualDiskId = m_pDiskSelector->id();
+        m_uVirtualDiskId = m_pDiskSelector->id();
         m_strVirtualDiskName = m_pDiskSelector->currentText();
         m_strVirtualDiskLocation = m_pDiskSelector->location();
@@ -68,9 +68,9 @@
 {
     /* Get opened medium id: */
-    QString strMediumId = vboxGlobal().openMediumWithFileOpenDialog(UIMediumDeviceType_HardDisk, thisImp());
-    if (!strMediumId.isNull())
+    QUuid uMediumId = vboxGlobal().openMediumWithFileOpenDialog(UIMediumDeviceType_HardDisk, thisImp());
+    if (!uMediumId.isNull())
     {
         /* Update medium-combo if necessary: */
-        m_pDiskSelector->setCurrentItem(strMediumId);
+        m_pDiskSelector->setCurrentItem(uMediumId);
         /* Update hard disk source: */
         updateVirtualDiskSource();
@@ -109,5 +109,5 @@
 
     /* Remember virtual-disk attributes: */
-    QString strMediumID = m_virtualDisk.GetId();
+    QUuid uMediumID = m_virtualDisk.GetId();
     QString strLocation = m_virtualDisk.GetLocation();
     /* Prepare delete storage progress: */
@@ -124,5 +124,5 @@
 
     /* Inform VBoxGlobal about it: */
-    vboxGlobal().deleteMedium(strMediumID);
+    vboxGlobal().deleteMedium(uMediumID);
 
     /* Detach virtual-disk anyway: */
@@ -266,5 +266,5 @@
 
     /* Ensure unused virtual-disk is deleted: */
-    if (m_pDiskSkip->isChecked() || m_pDiskCreate->isChecked() || (!m_virtualDisk.isNull() && m_strVirtualDiskId != m_virtualDisk.GetId()))
+    if (m_pDiskSkip->isChecked() || m_pDiskCreate->isChecked() || (!m_virtualDisk.isNull() && m_uVirtualDiskId != m_virtualDisk.GetId()))
         ensureNewVirtualDiskDeleted();
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic3.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic3.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic3.h	(revision 74878)
@@ -53,6 +53,6 @@
 
     /* Stuff for 'virtualDiskId' field: */
-    QString virtualDiskId() const { return m_strVirtualDiskId; }
-    void setVirtualDiskId(const QString &strVirtualDiskId) { m_strVirtualDiskId = strVirtualDiskId; }
+    QUuid virtualDiskId() const { return m_uVirtualDiskId; }
+    void setVirtualDiskId(const QUuid &aVirtualDiskId) { m_uVirtualDiskId = aVirtualDiskId; }
 
     /* Stuff for 'virtualDiskName' field: */
@@ -72,5 +72,5 @@
     /* Variables: */
     CMedium m_virtualDisk;
-    QString m_strVirtualDiskId;
+    QUuid   m_uVirtualDiskId;
     QString m_strVirtualDiskName;
     QString m_strVirtualDiskLocation;
@@ -89,5 +89,5 @@
     Q_OBJECT;
     Q_PROPERTY(CMedium virtualDisk READ virtualDisk WRITE setVirtualDisk);
-    Q_PROPERTY(QString virtualDiskId READ virtualDiskId WRITE setVirtualDiskId);
+    Q_PROPERTY(QUuid virtualDiskId READ virtualDiskId WRITE setVirtualDiskId);
     Q_PROPERTY(QString virtualDiskName READ virtualDiskName WRITE setVirtualDiskName);
     Q_PROPERTY(QString virtualDiskLocation READ virtualDiskLocation WRITE setVirtualDiskLocation);
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.h	(revision 74877)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.h	(revision 74878)
@@ -38,5 +38,5 @@
     Q_PROPERTY(QString machineFilePath READ machineFilePath WRITE setMachineFilePath);
     Q_PROPERTY(CMedium virtualDisk READ virtualDisk WRITE setVirtualDisk);
-    Q_PROPERTY(QString virtualDiskId READ virtualDiskId WRITE setVirtualDiskId);
+    Q_PROPERTY(QUuid virtualDiskId READ virtualDiskId WRITE setVirtualDiskId);
     Q_PROPERTY(QString virtualDiskLocation READ virtualDiskLocation WRITE setVirtualDiskLocation);
 
