Index: /trunk/src/VBox/Devices/Bus/DevPCI.cpp
===================================================================
--- /trunk/src/VBox/Devices/Bus/DevPCI.cpp	(revision 87788)
+++ /trunk/src/VBox/Devices/Bus/DevPCI.cpp	(revision 87789)
@@ -656,18 +656,22 @@
                         {
                             paddr = &pGlobals->uPciBiosMmio;
-                            bool fPrefetch =    (u8ResourceType & ((uint8_t)(PCI_ADDRESS_SPACE_MEM_PREFETCH | PCI_ADDRESS_SPACE_IO)))
-                                             == PCI_ADDRESS_SPACE_MEM_PREFETCH;
-
-                            if (devclass == 0x0300 && (vendor_id == 0x80ee || vendor_id == 0x15ad) && fPrefetch)
+                            if (devclass == 0x0300)
                             {
-                                /* VGA: map frame buffer to default Bochs VBE address */
-                                paddr = &uPciBiosSpecialVRAM;
                                 /*
-                                 * For VBoxVGA must enable I/O decoding, because legacy
-                                 * VGA I/O ports are implicitly decoded by a VGA class
-                                 * device. Not needed for VMSVGA or VBoxSVGA, because
-                                 * they have an explicit I/O BAR.
+                                 * Because legacy VGA I/O ports are implicitly decoded
+                                 * by a VGA class device without needing a BAR, we must
+                                 * enable I/O decoding for such devices.
                                  */
                                 fActiveIORegion = true;
+
+                                if (vendor_id == 0x80ee || vendor_id == 0x15ad)
+                                {
+                                    bool fPrefetch =    (u8ResourceType & ((uint8_t)(PCI_ADDRESS_SPACE_MEM_PREFETCH | PCI_ADDRESS_SPACE_IO)))
+                                                     == PCI_ADDRESS_SPACE_MEM_PREFETCH;
+                                    /* VGA: map frame buffer to default Bochs VBE address. Only
+                                     * needed for legacy guest drivers. */
+                                    if (fPrefetch)
+                                        paddr = &uPciBiosSpecialVRAM;
+                                }
                             }
                         }
