Got tethering, wifi & push working on Blackra1n 3GS FW3.1.2
This is what I did.
First I used iTunes to update my 3GS to FW3.1.2. Then jailbroke with Blackra1n RC3 which worked great, and used it to install Blacksn0w and Cydia. I use AT&T so didn't need unlock, but did so anyway using because I wanted tethering. Got that working usingthis carrier filem. But as others have found this breaks wifi and push in the process... didn't happen at first and sometimes network reset would band-aid it, but it kept happening and after a few times I couldn't get it working again. So...
Restored using iTunes to FW3.1.2. Repeated Blackra1n RC3 jailbreak. Installed Blacksn0w via Cydia (add http://blackra1n.com as source) rather than Blackra1n then used the above carrier file. End result - same problem. Uninstalled Blacksn0w via Cydia. Wifi & push problem fixed but of course tethering is now broken. To me this confirms that Blacksn0w is the culprit for the wifi & push problem. Seems like Geohot is aware of it and hopefully a revised version of Blacksn0w is forthcoming.
So I add sinfuliphone to my sources in Cydia and install the Enable Tethering 3GS 3.1.2 patch. Rebooted and thought it caused WSOD but after a few minutes springboard finally started. At first it said to contact AT&T when I tried to enable tethering, but after trying again it worked. And Wifi & push are intact.
If you only need tethering and not the unlock/hacktivation, I'd recommend skipping Blacksn0w until Geohot updates it to fix the Wifi & push issues, and use the sinfuliphone patch instead.