http://bugs.winehq.org/show_bug.cgi?id=33008
--- Comment #7 from Erich Hoover ehoover@mines.edu 2013-02-19 14:54:49 CST --- This sounds like Wine is now properly implementing the behavior that the application should have under Windows in a similar circumstance. So, I would guess that how you're routing the traffic is responsible for Wine dropping the packet.
However, it is possible that something needs to be done in the packet filter to address your rather peculiar use case. What I read of how you're trying to setup things is that you want it to work like so: B.B.B.x -> A.A.A.Address -> Wine If your NAT rule is not changing the source information (I believe that's the "MASQUERADE" option) then the packet is being dropped because Wine is detecting that the packet is coming in on the wrong interface. That is how an interface-specific bind on Windows is supposed to work. How Wine used to behave is to make a Unix-like interface-specific bind (which works differently than on Windows), which would allow that packet from the wrong interface. To operate in a Windows-like way Wine now binds to 0.0.0.0 and uses a Linux Socket Filter to screen packets that come in to make sure they're on the correct interface.