Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/vm/VBoxVMSettingsSystem.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/vm/VBoxVMSettingsSystem.cpp	(revision 33729)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/vm/VBoxVMSettingsSystem.cpp	(revision 33730)
@@ -263,5 +263,6 @@
         m_cache.m_bootItems << data;
     }
-    m_cache.m_fIoApicEnabled = mCbApic->isChecked() || mSlCPU->value() > 1;
+    m_cache.m_fIoApicEnabled = mCbApic->isChecked() || mSlCPU->value() > 1 ||
+                               (KChipsetType)mCbChipset->itemData(mCbChipset->currentIndex()).toInt() == KChipsetType_ICH9;
     m_cache.m_fEFIEnabled = mCbEFI->isChecked();
     m_cache.m_fUTCEnabled = mCbTCUseUTC->isChecked();
@@ -317,4 +318,5 @@
     connect (mCbVirt, SIGNAL (stateChanged (int)), mValidator, SLOT (revalidate()));
     connect (mCbUseAbsHID, SIGNAL (stateChanged (int)), mValidator, SLOT (revalidate()));
+    connect(mCbChipset, SIGNAL(currentIndexChanged(int)), mValidator, SLOT(revalidate()));
 }
 
@@ -382,4 +384,15 @@
             "you have assigned more than one virtual CPU to this VM. "
             "This will not work unless hardware virtualization (VT-x/AMD-V) is also enabled. "
+            "This will be done automatically when you accept the VM Settings "
+            "by pressing the OK button.");
+        return true;
+    }
+
+    /* Chipset type & IO-APIC test */
+    if ((KChipsetType)mCbChipset->itemData(mCbChipset->currentIndex()).toInt() == KChipsetType_ICH9 && !mCbApic->isChecked())
+    {
+        aWarning = tr (
+            "you have assigned ICH9 chipset type to this VM. "
+            "It will not work properly unless the IO-APIC feature is also enabled. "
             "This will be done automatically when you accept the VM Settings "
             "by pressing the OK button.");
