After performing about 2400 transfers of BC0.01 each, my wallet.dat grew to 340MB, and bitcoind crashed, asking me to run DB recovery. After I used BDB tools to dump and reload the wallet, I was able to get it to restart (alebit using 500MB of RAM), but trying to transfer out the remaining balance failed with:
error: Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.
How do I recover my wallet now?