Index: /trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp	(revision 60720)
+++ /trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp	(revision 60721)
@@ -989,4 +989,5 @@
          * dead wrong on 8086 (see http://www.os2museum.com/wp/undocumented-8086-opcodes/).
          */
+        bool fDisableApic = false;
         if (   bstr.equals("Intel 80386") /* just for now */
             || bstr.equals("Intel 80286")
@@ -994,5 +995,12 @@
             || bstr.equals("Nec V20")
             || bstr.equals("Intel 8086") )
+        {
             InsertConfigInteger(pEM, "IemExecutesAll", true);
+            if (!bstr.equals("Intel 80386"))
+            {
+                fDisableApic = true;
+                fIOAPIC      = false;
+            }
+        }
 
         /*
@@ -1541,21 +1549,24 @@
          *      thus only single insert
          */
-        InsertConfigNode(pDevices, "apic", &pDev);
-        InsertConfigNode(pDev, "0", &pInst);
-        InsertConfigInteger(pInst, "Trusted",              1); /* boolean */
-        InsertConfigNode(pInst,    "Config", &pCfg);
-        InsertConfigInteger(pCfg,  "IOAPIC", fIOAPIC);
-        InsertConfigInteger(pCfg,  "NumCPUs", cCpus);
-
-        if (fIOAPIC)
-        {
-            /*
-             * I/O Advanced Programmable Interrupt Controller.
-             */
-            InsertConfigNode(pDevices, "ioapic", &pDev);
-            InsertConfigNode(pDev,     "0", &pInst);
+        if (fDisableApic)
+        {
+            InsertConfigNode(pDevices, "apic", &pDev);
+            InsertConfigNode(pDev, "0", &pInst);
             InsertConfigInteger(pInst, "Trusted",          1); /* boolean */
             InsertConfigNode(pInst,    "Config", &pCfg);
+            InsertConfigInteger(pCfg,  "IOAPIC", fIOAPIC);
             InsertConfigInteger(pCfg,  "NumCPUs", cCpus);
+
+            if (fIOAPIC)
+            {
+                /*
+                 * I/O Advanced Programmable Interrupt Controller.
+                 */
+                InsertConfigNode(pDevices, "ioapic", &pDev);
+                InsertConfigNode(pDev,     "0", &pInst);
+                InsertConfigInteger(pInst, "Trusted",      1); /* boolean */
+                InsertConfigNode(pInst,    "Config", &pCfg);
+                InsertConfigInteger(pCfg,  "NumCPUs", cCpus);
+            }
         }
 
