Like a lot of folks here, I have an iPhone 3G w/2 yr contract, and of course, I want the 3GS, but I don't want to pay $699 or $499, and I'd rather not wait until December to be eligible for a $299 upgrade with a new contract. So I did some digging and I found AT&T's legalize on their Early Termination Fee, and I quote: So if you sat in line early on the morning of July 11th 2008 to get the 3G, you've accrued 11 months of your current contract... So do the math and your ETF is more like $120. I called AT&T today and confirmed this, and also confirmed that there is no waiting period to sign a new contract (some have mentioned that here), I could literally cancel my contract, pay the ETF, and sign up for a new one in the same phone call. A minor issue is that you will lose your current number as there is a waiting period of 60 days where the phone number must be reserved by AT&T in case you decide to resume your contract... Why they can't simply give you the number if you're signing up for another contract 2 seconds later doesn't make any sense, but hey, that's what AT&T told me. So... The true cost of "upgrading" to a 32GB iPhone 3GS from an existing iPhone 3G is much less than $499... Plus, don't forget you have an less than a year old iPhone 3G to sell... I'm selling mine for $150, so in my case, ($299+$120)-$150 = $269, not including accessories and apple care, sign-up fees, etc.