Index: /trunk/src/VBox/Main/src-server/UnattendedImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/UnattendedImpl.cpp	(revision 105921)
+++ /trunk/src/VBox/Main/src-server/UnattendedImpl.cpp	(revision 105922)
@@ -341,5 +341,5 @@
 {
     HRESULT       hrc;
-    HRESULT       getSupportedGuestOSTypesRC;
+
     /* Get a list of guest OS Type Ids supported by the host. */
     ComPtr<ISystemProperties> pSystemProperties;
@@ -353,5 +353,7 @@
         if (SUCCEEDED(hrc))
         {
-            getSupportedGuestOSTypesRC = pPlatformProperties->COMGETTER(SupportedGuestOSTypes)(ComSafeArrayAsOutParam(supportedGuestOSTypes));
+            hrc = pPlatformProperties->COMGETTER(SupportedGuestOSTypes)(ComSafeArrayAsOutParam(supportedGuestOSTypes));
+            if (!SUCCEEDED(hrc))
+                supportedGuestOSTypes.resize(0);
         }
     }
@@ -506,26 +508,26 @@
     }
 
-    if (SUCCEEDED(getSupportedGuestOSTypesRC))
-    {
-        bool fSupported = false;
-        for (size_t i = 0; i < supportedGuestOSTypes.size() && !fSupported; ++i)
-        {
-            ComPtr<IGuestOSType> guestOSType = supportedGuestOSTypes[i];
-
-            Bstr guestId;
-            guestOSType->COMGETTER(Id)(guestId.asOutParam());
-            if (guestId == mStrDetectedOSTypeId)
-                fSupported = true;
-        }
-        if (!fSupported)
-        {
-            mStrDetectedOSTypeId.setNull();
-            mStrDetectedOSVersion.setNull();
-            mStrDetectedOSFlavor.setNull();
-            mDetectedOSLanguages.clear();
-            mStrDetectedOSHints.setNull();
-            mDetectedImages.clear();
-        }
-    }
+    /* Check if detected OS type is supported (covers platform architecture). */
+    bool fSupported = false;
+    for (size_t i = 0; i < supportedGuestOSTypes.size() && !fSupported; ++i)
+    {
+        ComPtr<IGuestOSType> guestOSType = supportedGuestOSTypes[i];
+
+        Bstr guestId;
+        guestOSType->COMGETTER(Id)(guestId.asOutParam());
+        if (guestId == mStrDetectedOSTypeId)
+            fSupported = true;
+    }
+    if (!fSupported)
+    {
+        mStrDetectedOSTypeId.setNull();
+        mStrDetectedOSVersion.setNull();
+        mStrDetectedOSFlavor.setNull();
+        mDetectedOSLanguages.clear();
+        mStrDetectedOSHints.setNull();
+        mDetectedImages.clear();
+        hrc = E_FAIL;
+    }
+
     /** @todo implement actual detection logic. */
     return hrc;
