Index: /trunk/src/VBox/Devices/Storage/DevBusLogic.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DevBusLogic.cpp	(revision 67885)
+++ /trunk/src/VBox/Devices/Storage/DevBusLogic.cpp	(revision 67886)
@@ -1158,4 +1158,5 @@
 {
     LogFlowFunc(("pBusLogic=%#p\n", pBusLogic));
+    Assert(pBusLogic->uOperationCode != BUSLOGICCOMMAND_EXECUTE_MAILBOX_COMMAND);
 
     pBusLogic->fUseLocalRam = false;
@@ -1163,6 +1164,6 @@
     pBusLogic->iReply = 0;
 
-    /* Modify I/O address does not generate an interrupt. */
-    if (pBusLogic->uOperationCode != BUSLOGICCOMMAND_EXECUTE_MAILBOX_COMMAND)
+    /* The Enable OMBR command does not set CMDC when successful. */
+    if (pBusLogic->uOperationCode != BUSLOGICCOMMAND_ENABLE_OUTGOING_MAILBOX_AVAILABLE_INTERRUPT)
     {
         /* Notify that the command is complete. */
@@ -1969,4 +1970,5 @@
             PRequestInitMbx pRequest = (PRequestInitMbx)pBusLogic->aCommandBuffer;
 
+            ///@todo: Command should fail if requested no. of mailbox entries is zero
             pBusLogic->fMbxIs24Bit = true;
             pBusLogic->cMailbox = pRequest->cMailbox;
@@ -1988,4 +1990,5 @@
             PRequestInitializeExtendedMailbox pRequest = (PRequestInitializeExtendedMailbox)pBusLogic->aCommandBuffer;
 
+            ///@todo: Command should fail if requested no. of mailbox entries is zero
             pBusLogic->fMbxIs24Bit = false;
             pBusLogic->cMailbox = pRequest->cMailbox;
@@ -2090,4 +2093,20 @@
             break;
         }
+        case BUSLOGICCOMMAND_ENABLE_OUTGOING_MAILBOX_AVAILABLE_INTERRUPT:
+        {
+            uint8_t     uEnable = pBusLogic->aCommandBuffer[0];
+
+            pBusLogic->cbReplyParametersLeft = 0;
+            Log(("Enable OMBR: %u\n", uEnable));
+            /* Only 0/1 are accepted. */
+            if (uEnable > 1)
+                pBusLogic->regStatus |= BL_STAT_CMDINV;
+            else
+            {
+                pBusLogic->LocalRam.structured.autoSCSIData.uReserved6 = uEnable;
+                fSuppressIrq = true;
+            }
+            break;
+        }
         case BUSLOGICCOMMAND_SET_PREEMPT_TIME_ON_BUS:
         {
@@ -2306,4 +2325,5 @@
             if ((uVal == BUSLOGICCOMMAND_EXECUTE_MAILBOX_COMMAND) && (pBusLogic->uOperationCode == 0xff))
             {
+                ///@todo: Should fail if BL_STAT_INREQ is set
                 /* If there are no mailboxes configured, don't even try to do anything. */
                 if (pBusLogic->cMailbox)
@@ -2357,4 +2377,5 @@
                     case BUSLOGICCOMMAND_DISABLE_HOST_ADAPTER_INTERRUPT:
                     case BUSLOGICCOMMAND_ECHO_COMMAND_DATA:
+                    case BUSLOGICCOMMAND_ENABLE_OUTGOING_MAILBOX_AVAILABLE_INTERRUPT:
                     case BUSLOGICCOMMAND_SET_PREEMPT_TIME_ON_BUS:
                     case BUSLOGICCOMMAND_SET_TIME_OFF_BUS:
