Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIGuestOSType.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIGuestOSType.cpp	(revision 102101)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIGuestOSType.cpp	(revision 102102)
@@ -27,4 +27,5 @@
 
 /* GUI includes: */
+#include "UICommon.h"
 #include "UIGuestOSType.h"
 
@@ -195,4 +196,14 @@
 }
 
+bool UIGuestOSTypeManager::is64Bit(const QString &strTypeId) const
+{
+    return m_guestOSTypes.value(m_typeIdIndexMap.value(strTypeId, -1)).is64Bit();
+}
+
+KPlatformArchitecture UIGuestOSTypeManager::getPlatformArchitecture(const QString &strTypeId) const
+{
+    return m_guestOSTypes.value(m_typeIdIndexMap.value(strTypeId, -1)).getPlatformArchitecture();
+}
+
 /* static */
 bool UIGuestOSTypeManager::isDOSType(const QString &strOSTypeId)
@@ -321,2 +332,16 @@
     return KStorageControllerType_Null;
 }
+
+bool UIGuestOSType::is64Bit() const
+{
+    if (m_comGuestOSType.isOk())
+        return m_comGuestOSType.GetIs64Bit();
+    return false;
+}
+
+KPlatformArchitecture UIGuestOSType::getPlatformArchitecture() const
+{
+    if (m_comGuestOSType.isOk())
+        return m_comGuestOSType.GetPlatformArchitecture();
+    return KPlatformArchitecture_Max;
+}
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIGuestOSType.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIGuestOSType.h	(revision 102101)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIGuestOSType.h	(revision 102102)
@@ -70,4 +70,6 @@
         KGraphicsControllerType getRecommendedGraphicsController() const;
         KStorageControllerType  getRecommendedDVDStorageController() const;
+        bool                    is64Bit() const;
+        KPlatformArchitecture   getPlatformArchitecture() const;
     /** @} */
 
@@ -136,4 +138,6 @@
         bool                    isLinux(const QString &strTypeId) const;
         bool                    isWindows(const QString &strTypeId) const;
+        bool                    is64Bit(const QString &strOSTypeId) const;
+        KPlatformArchitecture   getPlatformArchitecture(const QString &strTypeId) const;
     /** @} */
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp	(revision 102101)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp	(revision 102102)
@@ -35,6 +35,8 @@
 
 /* GUI includes: */
+#include "UICommon.h"
 #include "UIIconPool.h"
 #include "UIExtraDataManager.h"
+#include "UIGuestOSType.h"
 #include "UIModalWindowManager.h"
 
@@ -781,13 +783,24 @@
 
 /* static */
-QString UIIconPoolGeneral::determineOSArchString(const QString &osTypeId)
-{
-    if (osTypeId.contains("_x64") || osTypeId.contains("_64"))
-        return QString("x64");
-    else if (osTypeId.contains("arm32"))
-        return QString("A32");
-    else if (osTypeId.contains("arm64"))
-        return QString("A64");
-    return QString("32");
+QString UIIconPoolGeneral::determineOSArchString(const QString &strOSTypeId)
+{
+    bool fIs64Bit = uiCommon().guestOSTypeManager().is64Bit(strOSTypeId);
+    KPlatformArchitecture enmPlatformArchitecture = uiCommon().guestOSTypeManager().getPlatformArchitecture(strOSTypeId);
+
+    if (enmPlatformArchitecture == KPlatformArchitecture_ARM)
+    {
+        if (fIs64Bit)
+            return QString("A64");
+        else
+            return QString("A32");
+    }
+    else if (enmPlatformArchitecture == KPlatformArchitecture_x86)
+    {
+        if (fIs64Bit)
+            return QString("x64");
+        else
+            return QString("32");
+    }
+    return QString();
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.h	(revision 102101)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.h	(revision 102102)
@@ -177,5 +177,5 @@
     static void overlayArchitectureTextOnPixmap(const QString &strArch, QPixmap &pixmap);
     /** Returns the architecture text we overlay on guest OS type id icon.*/
-    static QString determineOSArchString(const QString &osTypeId);
+    static QString determineOSArchString(const QString &strOSTypeId);
     /** Holds the singleton instance. */
     static UIIconPoolGeneral *s_pInstance;
