Index: /trunk/src/VBox/Devices/Bus/DevPCI.cpp
===================================================================
--- /trunk/src/VBox/Devices/Bus/DevPCI.cpp	(revision 31335)
+++ /trunk/src/VBox/Devices/Bus/DevPCI.cpp	(revision 31336)
@@ -411,5 +411,6 @@
             case 0x2e: case 0x2f:                                                                   /* vendor ID */
             case 0x30: case 0x31: case 0x32: case 0x33:                                             /* rom */
-            case 0x3d:
+            case 0x34:                                                                              /* Capabilities pointer. */
+            case 0x3d:                                                                              /* Interrupt pin. */
                 can_write = 0;
                 break;
@@ -442,5 +443,11 @@
         }
 #ifdef VBOX
-        if (addr == 0x06)
+        if (addr == 0x05)       /* Command register, bits 8-15. */
+        {
+            /* don't change reserved bits (11-15) */
+            val &= UINT32_C(~0xf8);
+            d->config[addr] = val;
+        }
+        else if (addr == 0x06)  /* Status register, bits 0-7. */
         {
             /* don't change read-only bits => actually all lower bits are read-only */
@@ -449,5 +456,5 @@
             d->config[addr] &= ~val;
         }
-        else if (addr == 0x07)
+        else if (addr == 0x07)  /* Status register, bits 8-15. */
         {
             /* don't change read-only bits */
