The iPhone Dev-Team has posted a video demonstration of UltraSn0w working on the iPhone 3GS.
Our ultrasn0w program uses the at+xlog crash as an injection vector of our unlocking payload and it does so on the 3GS in exactly the same way as on the 3G! But this injection vector will be lost if you update to 3.1 using the official Apple IPSW, which updates the baseband. So stay away from official 3.1 IPSWs until we release the tools that let you update the firmware without updating the baseband.
Our ultrasn0w program uses the at+xlog crash as an injection vector of our unlocking payload and it does so on the 3GS in exactly the same way as on the 3G! But this injection vector will be lost if you update to 3.1 using the official Apple IPSW, which updates the baseband. So stay away from official 3.1 IPSWs until we release the tools that let you update the firmware without updating the baseband.