Index: /trunk/src/VBox/HostDrivers/VBoxNetFlt/win/VBoxNetFlt-win.c
===================================================================
--- /trunk/src/VBox/HostDrivers/VBoxNetFlt/win/VBoxNetFlt-win.c	(revision 29642)
+++ /trunk/src/VBox/HostDrivers/VBoxNetFlt/win/VBoxNetFlt-win.c	(revision 29643)
@@ -115,8 +115,6 @@
 INIT_IDC_INFO g_InitIdcInfo;
 
-#ifdef VBOX_LOOPBACK_USEFLAGS
 UINT g_fPacketDontLoopBack;
 UINT g_fPacketIsLoopedBack;
-#endif
 
 #define LIST_ENTRY_2_JOB(pListEntry) \
@@ -1948,8 +1946,6 @@
     NDIS_STATUS                        Status = NDIS_STATUS_SUCCESS;
     int rc;
-#ifdef VBOX_LOOPBACK_USEFLAGS
     ULONG MjVersion;
     ULONG MnVersion;
-#endif
 
     NdisAllocateSpinLock(&g_GlobalLock);
@@ -1967,5 +1963,4 @@
     if(RT_SUCCESS(rc))
     {
-#ifdef VBOX_LOOPBACK_USEFLAGS
         PsGetVersion(&MjVersion, &MnVersion,
           NULL, /* PULONG  BuildNumber  OPTIONAL */
@@ -1982,5 +1977,4 @@
 
         g_fPacketIsLoopedBack = NDIS_FLAGS_IS_LOOPBACK_PACKET;
-#endif
 
         Status = vboxNetFltWinJobInitQueue(&g_JobQueue);
@@ -3479,4 +3473,12 @@
             NDIS_STATUS fStatus;
 
+#ifndef VBOX_LOOPBACK_USEFLAGS
+            /* force "don't loopback" flags to prevent loopback branch invocation in any case
+             * to avoid ndis misbehave */
+            NdisGetPacketFlags(pPacket) |= g_fPacketDontLoopBack;
+#else
+            /* this is done by default in vboxNetFltWinNdisPacketFromSG */
+#endif
+
 #if defined(DEBUG_NETFLT_PACKETS) || !defined(VBOX_LOOPBACK_USEFLAGS)
             vboxNetFltWinLbPutSendPacket(pAdapt, pPacket, true /* bFromIntNet */);
Index: /trunk/src/VBox/HostDrivers/VBoxNetFlt/win/VBoxNetFlt-win.h
===================================================================
--- /trunk/src/VBox/HostDrivers/VBoxNetFlt/win/VBoxNetFlt-win.h	(revision 29642)
+++ /trunk/src/VBox/HostDrivers/VBoxNetFlt/win/VBoxNetFlt-win.h	(revision 29643)
@@ -30,8 +30,6 @@
 extern NDIS_SPIN_LOCK     g_GlobalLock;
 
-#ifdef VBOX_LOOPBACK_USEFLAGS
 extern UINT g_fPacketDontLoopBack;
 extern UINT g_fPacketIsLoopedBack;
-#endif
 
 /*
Index: /trunk/src/VBox/HostDrivers/VBoxNetFlt/win/VBoxNetFltCommon-win.h
===================================================================
--- /trunk/src/VBox/HostDrivers/VBoxNetFlt/win/VBoxNetFltCommon-win.h	(revision 29642)
+++ /trunk/src/VBox/HostDrivers/VBoxNetFlt/win/VBoxNetFltCommon-win.h	(revision 29643)
@@ -470,7 +470,5 @@
 C_ASSERT(sizeof(UINT) == sizeof(uint32_t));
 
-#ifdef VBOX_LOOPBACK_USEFLAGS
 #define NDIS_FLAGS_SKIP_LOOPBACK_W2K    0x400
-#endif
 
 #include "../VBoxNetFltInternal.h"
