Pull request: https://github.com/bitcoin/bitcoin/pull/85
Starting a thread here, since it's not possible to comment on GitHub without agreeing to finance a legal battle when they get sued.
Looks good at first glance. Can we brainstorm test cases that we think might cause problems?
E.g. Wallet with (only) available transactions of +1 +2.0001 +3 : Send 6 bitcoins; what happens?
Same wallet, send 2 (I think you'll get a 2.0001+1 spend with 1.0001 change)...
Any other tricky edge cases?
In your first case, it should send 6 with a 0.0001 fee (this one is UNavoidable).