When you have 2 nics in the same network, you need to setup source level routing. What you want is that everything which comes on eth0, should be answered on eth0. And everything which comes on wlan0 should be responded from wlan0. (Which is actually the default in Solaris, I don't know why this is not the default in Linux)
Easiest way is to define the routes in two tables, see here:
http://serverfault.com/questions/336021/two-network-interfaces-and-two-ip-addresses-on-the-same-subnet-in-linux