Index: /trunk/src/VBox/Devices/Bus/DevPciIch9.cpp
===================================================================
--- /trunk/src/VBox/Devices/Bus/DevPciIch9.cpp	(revision 64696)
+++ /trunk/src/VBox/Devices/Bus/DevPciIch9.cpp	(revision 64697)
@@ -1517,5 +1517,4 @@
         case 0x0604:
             /* PCI-to-PCI bridge. */
-            AssertMsg(pPciRoot->uPciBiosBus < 255, ("Too many bridges on the bus\n"));
             ich9pciBiosInitBridge(pPciRoot, uBus, uDevFn);
             break;
@@ -1714,6 +1713,5 @@
                   ("Device is not a PCI bridge but on the list of PCI bridges\n"));
         PDEVPCIBUS pChildBus = PDMINS_2_DATA(pBridge->Int.s.CTX_SUFF(pDevIns), PDEVPCIBUS);
-        pPciRoot->uPciBiosBus++;
-        ich9pciBiosInitBridgeTopology(pPciRoot, pChildBus, uBusSecondary, pPciRoot->uPciBiosBus);
+        ich9pciBiosInitBridgeTopology(pPciRoot, pChildBus, uBusSecondary, pChildBus->iBus);
     }
     PCIDevSetByte(pBridgeDev, VBOX_PCI_SUBORDINATE_BUS, pPciRoot->uPciBiosBus);
@@ -1758,5 +1756,6 @@
      */
     PDEVPCIBUS pBus = &pPciRoot->PciBus;
-    ich9pciBiosInitBridgeTopology(pPciRoot, pBus, 0, 0);
+    AssertLogRel(pBus->iBus == 0);
+    ich9pciBiosInitBridgeTopology(pPciRoot, pBus, 0, pBus->iBus);
 
     /*
Index: /trunk/src/VBox/Devices/Bus/DevPciInternal.h
===================================================================
--- /trunk/src/VBox/Devices/Bus/DevPciInternal.h	(revision 64696)
+++ /trunk/src/VBox/Devices/Bus/DevPciInternal.h	(revision 64697)
@@ -146,5 +146,5 @@
 
 #if 1 /* Will be moved into the BIOS "soon". */
-    /** Current bus number (?). */
+    /** Current bus number - obsolete (still used by DevPCI, but merge will fix that). */
     uint8_t             uPciBiosBus;
     uint8_t             abAlignment2[7];
