Index: /trunk/src/VBox/HostDrivers/VBoxNetAdp/darwin/VBoxNetAdp-darwin.cpp
===================================================================
--- /trunk/src/VBox/HostDrivers/VBoxNetAdp/darwin/VBoxNetAdp-darwin.cpp	(revision 57912)
+++ /trunk/src/VBox/HostDrivers/VBoxNetAdp/darwin/VBoxNetAdp-darwin.cpp	(revision 57913)
@@ -215,4 +215,36 @@
 }
 
+
+static errno_t vboxNetAdpDarwinIfIOCtl(ifnet_t pIface, unsigned long uCmd, void *pvData)
+{
+    errno_t error = 0;
+
+    switch (uCmd)
+    {
+        /*
+         * Common pattern in the kernel code is:
+         *   ifnet_set_flags(interface, ...);
+         *   ifnet_ioctl(interface, 0, SIOCSIFFLAGS, NULL);
+         *
+         * Stub this case out so that VBoxNetFlt-darwin.cpp doesn't
+         * complain that it failed to put vboxnet into promiscuous
+         * mode.
+         */
+        case SIOCSIFFLAGS:
+            if (pvData != NULL)
+            {
+                error = ENOTSUP;
+            }
+            break;
+
+        default:
+            error = ether_ioctl(pIface, uCmd, pvData);
+            break;
+    }
+
+    return error;
+}
+
+
 int vboxNetAdpOsCreate(PVBOXNETADP pThis, PCRTMAC pMACAddress)
 {
@@ -252,5 +284,5 @@
     Params.framer = ether_frameout;
     Params.softc = pThis;
-    Params.ioctl = (ifnet_ioctl_func)ether_ioctl;
+    Params.ioctl = vboxNetAdpDarwinIfIOCtl;
     Params.set_bpf_tap = NULL;
     Params.detach = vboxNetAdpDarwinDetach;
