Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIGuestOSTypeII.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIGuestOSTypeII.cpp	(revision 101262)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIGuestOSTypeII.cpp	(revision 101263)
@@ -218,2 +218,19 @@
     return 0;
 }
+
+KGraphicsControllerType UIGuestOSTypeII::getRecommendedGraphicsController() const
+{
+    if (m_comGuestOSType.isOk())
+        return m_comGuestOSType.GetRecommendedGraphicsController();
+    return KGraphicsControllerType_Null;
+}
+
+bool UIGuestOSTypeII::operator==(const UIGuestOSTypeII &other)
+{
+    return m_comGuestOSType == other.m_comGuestOSType;
+}
+
+bool UIGuestOSTypeII::operator!=(const UIGuestOSTypeII &other)
+{
+    return m_comGuestOSType != other.m_comGuestOSType;
+}
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIGuestOSTypeII.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIGuestOSTypeII.h	(revision 101262)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIGuestOSTypeII.h	(revision 101263)
@@ -98,7 +98,10 @@
         bool getRecommendedFloppy() const;
         LONG64 getRecommendedHDD() const;
+        KGraphicsControllerType getRecommendedGraphicsController() const;
     /** @} */
 
     bool isOk() const;
+    bool operator==(const UIGuestOSTypeII &other);
+    bool operator!=(const UIGuestOSTypeII &other);
 
 private:
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UINameAndSystemEditor.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UINameAndSystemEditor.cpp	(revision 101262)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UINameAndSystemEditor.cpp	(revision 101263)
@@ -35,5 +35,4 @@
 #include "QILineEdit.h"
 #include "UICommon.h"
-#include "UIGuestOSTypeII.h"
 #include "UIIconPool.h"
 #include "UIFilePathSelector.h"
@@ -304,6 +303,4 @@
 QString UINameAndSystemEditor::typeId() const
 {
-    if (!m_pComboType)
-        return QString();
     return m_strTypeId;
 }
@@ -329,7 +326,9 @@
 // }
 
-CGuestOSType UINameAndSystemEditor::type() const
-{
-    return uiCommon().vmGuestOSType(typeId(), familyId());
+UIGuestOSTypeII UINameAndSystemEditor::type() const
+{
+    const UIGuestOSTypeManager * const pGuestOSTypeManager = uiCommon().guestOSTypeManager();
+    AssertReturn(pGuestOSTypeManager, UIGuestOSTypeII());
+    return pGuestOSTypeManager->findGuestTypeById(m_strTypeId);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UINameAndSystemEditor.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UINameAndSystemEditor.h	(revision 101262)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UINameAndSystemEditor.h	(revision 101263)
@@ -34,4 +34,5 @@
 /* GUI includes: */
 #include "UIEditor.h"
+#include "UIGuestOSTypeII.h"
 
 /* COM includes: */
@@ -130,5 +131,5 @@
 
     /** Returns the VM OS type. */
-    CGuestOSType type() const;
+    UIGuestOSTypeII type() const;
 
     /** Passes the @p fError to QILineEdit::mark(bool) effectively marking it for error. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIVideoMemoryEditor.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIVideoMemoryEditor.cpp	(revision 101262)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIVideoMemoryEditor.cpp	(revision 101263)
@@ -45,5 +45,5 @@
     : UIEditor(pParent)
     , m_iValue(0)
-    , m_comGuestOSType(CGuestOSType())
+    , m_guestOSType(UIGuestOSTypeII())
     , m_cGuestScreenCount(1)
     , m_enmGraphicsControllerType(KGraphicsControllerType_Null)
@@ -85,12 +85,12 @@
 }
 
-void UIVideoMemoryEditor::setGuestOSType(const CGuestOSType &comGuestOSType)
-{
-    /* Update cached value and
-     * requirements if value has changed: */
-    if (m_comGuestOSType != comGuestOSType)
+void UIVideoMemoryEditor::setGuestOSType(const UIGuestOSTypeII &guestOSType)
+{
+    /* Update cached value and
+     * requirements if value has changed: */
+    if (m_guestOSType != guestOSType)
     {
         /* Remember new guest OS type: */
-        m_comGuestOSType = comGuestOSType;
+        m_guestOSType = guestOSType;
 
         /* Update requirements: */
@@ -316,5 +316,5 @@
 {
     /* Make sure guest OS type is set: */
-    if (m_comGuestOSType.isNull())
+    if (!m_guestOSType.isOk())
         return;
 
@@ -323,5 +323,5 @@
 
     /* Get monitors count and recommended VRAM: */
-    int iNeedMBytes = UICommon::requiredVideoMemory(m_comGuestOSType.GetId(), m_cGuestScreenCount) / _1M;
+    int iNeedMBytes = UICommon::requiredVideoMemory(m_guestOSType.getId(), m_cGuestScreenCount) / _1M;
     /* Adjust visible maximum VRAM to be no less than 128MB (if possible): */
     if (m_iMaxVRAMVisible < 128 && m_iMaxVRAM >= 128)
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIVideoMemoryEditor.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIVideoMemoryEditor.h	(revision 101262)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIVideoMemoryEditor.h	(revision 101263)
@@ -34,8 +34,8 @@
 /* GUI includes: */
 #include "UIEditor.h"
+#include "UIGuestOSTypeII.h"
 
 /* COM includes: */
 #include "COMEnums.h"
-#include "CGuestOSType.h"
 
 /* Forward declarations: */
@@ -66,5 +66,5 @@
 
     /** Defines @a comGuestOSType. */
-    void setGuestOSType(const CGuestOSType &comGuestOSType);
+    void setGuestOSType(const UIGuestOSTypeII &comGuestOSType);
 
     /** Defines @a cGuestScreenCount. */
@@ -118,5 +118,5 @@
      * @{ */
         /** Holds the guest OS type ID. */
-        CGuestOSType             m_comGuestOSType;
+        UIGuestOSTypeII          m_guestOSType;
         /** Holds the guest screen count. */
         int                      m_cGuestScreenCount;
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 101262)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 101263)
@@ -294,5 +294,5 @@
 
 UIMachineSettingsDisplay::UIMachineSettingsDisplay()
-    : m_comGuestOSType(CGuestOSType())
+    : m_guestOSType(CGuestOSType())
 #ifdef VBOX_WITH_3D_ACCELERATION
     , m_fWddmModeSupported(false)
@@ -322,22 +322,22 @@
 }
 
-void UIMachineSettingsDisplay::setGuestOSType(CGuestOSType comGuestOSType)
+void UIMachineSettingsDisplay::setGuestOSType(UIGuestOSTypeII guestOSType)
 {
     /* Check if guest OS type changed: */
-    if (m_comGuestOSType == comGuestOSType)
+    if (m_guestOSType == guestOSType)
         return;
 
     /* Remember new guest OS type: */
-    m_comGuestOSType = comGuestOSType;
-    m_pEditorVideoMemorySize->setGuestOSType(m_comGuestOSType);
+    m_guestOSType = guestOSType;
+    m_pEditorVideoMemorySize->setGuestOSType(m_guestOSType);
 
 #ifdef VBOX_WITH_3D_ACCELERATION
     /* Check if WDDM mode supported by the guest OS type: */
-    const QString strGuestOSTypeId = m_comGuestOSType.isNotNull() ? m_comGuestOSType.GetId() : QString();
+    const QString strGuestOSTypeId = m_guestOSType.isOk() ? m_guestOSType.getId() : QString();
     m_fWddmModeSupported = UICommon::isWddmCompatibleOsType(strGuestOSTypeId);
     m_pEditorVideoMemorySize->set3DAccelerationSupported(m_fWddmModeSupported);
 #endif /* VBOX_WITH_3D_ACCELERATION */
     /* Acquire recommended graphics controller type: */
-    m_enmGraphicsControllerTypeRecommended = m_comGuestOSType.GetRecommendedGraphicsController();
+    m_enmGraphicsControllerTypeRecommended = m_guestOSType.getRecommendedGraphicsController();
 
     /* Revalidate: */
@@ -636,7 +636,7 @@
 
         /* Video RAM amount test: */
-        if (shouldWeWarnAboutLowVRAM() && !m_comGuestOSType.isNull())
-        {
-            quint64 uNeedBytes = UICommon::requiredVideoMemory(m_comGuestOSType.GetId(), m_pEditorMonitorCount->value());
+        if (shouldWeWarnAboutLowVRAM() && m_guestOSType.isOk())
+        {
+            quint64 uNeedBytes = UICommon::requiredVideoMemory(m_guestOSType.getId(), m_pEditorMonitorCount->value());
 
             /* Basic video RAM amount test: */
@@ -664,5 +664,5 @@
 
         /* Graphics controller type test: */
-        if (!m_comGuestOSType.isNull())
+        if (m_guestOSType.isOk())
         {
             if (graphicsControllerTypeCurrent() != graphicsControllerTypeRecommended())
@@ -1027,5 +1027,5 @@
     QStringList excludingOSList = QStringList()
         << "Other" << "DOS" << "Netware" << "L4" << "QNX" << "JRockitVE";
-    if (m_comGuestOSType.isNull() || excludingOSList.contains(m_comGuestOSType.GetId()))
+    if (!m_guestOSType.isOk() || excludingOSList.contains(m_guestOSType.getId()))
         fResult = false;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h	(revision 101262)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h	(revision 101263)
@@ -33,8 +33,6 @@
 
 /* GUI includes: */
+#include "UIGuestOSTypeII.h"
 #include "UISettingsPage.h"
-
-/* COM includes: */
-#include "CGuestOSType.h"
 
 /* Forward declarations: */
@@ -65,5 +63,5 @@
 
     /** Defines @a comGuestOSType. */
-    void setGuestOSType(CGuestOSType comGuestOSType);
+    void setGuestOSType(UIGuestOSTypeII comGuestOSType);
 
 #ifdef VBOX_WITH_3D_ACCELERATION
@@ -150,6 +148,6 @@
     bool saveRecordingData();
 
-    /** Holds the guest OS type ID. */
-    CGuestOSType  m_comGuestOSType;
+    /** Holds the guest OS type. */
+    UIGuestOSTypeII  m_guestOSType;
 #ifdef VBOX_WITH_3D_ACCELERATION
     /** Holds whether the guest OS supports WDDM. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp	(revision 101262)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp	(revision 101263)
@@ -158,7 +158,7 @@
 }
 
-CGuestOSType UIMachineSettingsGeneral::guestOSType() const
-{
-    AssertPtrReturn(m_pEditorNameAndSystem, CGuestOSType());
+UIGuestOSTypeII UIMachineSettingsGeneral::guestOSType() const
+{
+    AssertPtrReturn(m_pEditorNameAndSystem, UIGuestOSTypeII());
     return m_pEditorNameAndSystem->type();
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.h	(revision 101262)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.h	(revision 101263)
@@ -33,4 +33,5 @@
 
 /* GUI includes: */
+#include "UIGuestOSTypeII.h"
 #include "UISettingsPage.h"
 
@@ -58,6 +59,6 @@
     virtual ~UIMachineSettingsGeneral() RT_OVERRIDE;
 
-    /** Returns the VM OS type ID. */
-    CGuestOSType guestOSType() const;
+    /** Returns the VM OS type. */
+    UIGuestOSTypeII guestOSType() const;
 
 protected:
