Index: /trunk/src/VBox/HostDrivers/VBoxNetFlt/win/VBoxNetFltMp-win.c
===================================================================
--- /trunk/src/VBox/HostDrivers/VBoxNetFlt/win/VBoxNetFltMp-win.c	(revision 29591)
+++ /trunk/src/VBox/HostDrivers/VBoxNetFlt/win/VBoxNetFltMp-win.c	(revision 29592)
@@ -446,4 +446,7 @@
     IN PADAPT             pAdapt,
     IN PNDIS_PACKET           pPacket
+#ifdef VBOXNETFLT_NO_PACKET_QUEUE
+    , bool bNetFltActive
+#endif
     )
 {
@@ -457,5 +460,10 @@
     {
 #if !defined(VBOX_LOOPBACK_USEFLAGS) /* || defined(DEBUG_NETFLT_PACKETS) */
+# ifdef VBOXNETFLT_NO_PACKET_QUEUE
+        if (bNetFltActive)
+            vboxNetFltWinLbPutSendPacket(pAdapt, pMyPacket, false /* bFromIntNet */);
+# else
         /* no need for the loop enqueue & check in a passthru mode , ndis will do everything for us */
+# endif
 #endif
         NdisSend(&fStatus,
@@ -466,4 +474,8 @@
 #ifndef WIN9X
             NdisIMCopySendCompletePerPacketInfo (pPacket, pMyPacket);
+#endif
+#if defined(VBOXNETFLT_NO_PACKET_QUEUE) && !defined(VBOX_LOOPBACK_USEFLAGS)
+        if (bNetFltActive)
+            vboxNetFltWinLbRemoveSendPacket(pAdapt, pMyPacket);
 #endif
             NdisFreePacket(pMyPacket);
@@ -838,5 +850,9 @@
             {
 #ifndef VBOXNETADP
-                fStatus = vboxNetFltWinSendPassThru(pAdapt, pPacket);
+                fStatus = vboxNetFltWinSendPassThru(pAdapt, pPacket
+#ifdef VBOXNETFLT_NO_PACKET_QUEUE
+                               , !!cNetFltRefs
+#endif
+                        );
 #else
                 if(!cNetFltRefs)
