I've got something like this happening, as well, where the problem seem to be a bogus block height. Twice now, letting 0.8.1 (Win7-64) run overnight on testnet, I come back to see the display showing ~80,000 blocks remaining. Debug shows the valid current testnet block height loaded, out of estimated total blocks 140,700 (!!).
Here is a log snippet just prior to shutting down, which appears to show the bogus block height conversation:
received block 000000006d7ee37ba38b4c4226b5b635bd06faedda5273eac6e03ee647ff7a21
Committing 29 changed transactions to coin database...
SetBestChain: new best=000000006d7ee37ba38b4c4226b5b635bd06faedda5273eac6e03ee647ff7a21 height=63403 work=6294868716572339 tx=135252 date=2013-04-02 01:09:46
ProcessBlock: ACCEPTED
getblocks -1 to 0000000000000000000000000000000000000000000000000000000000000000 limit 500
getblocks -1 to 0000000000000000000000000000000000000000000000000000000000000000 limit 500
getblocks -1 to 0000000000000000000000000000000000000000000000000000000000000000 limit 500
getblocks -1 to 0000000000000000000000000000000000000000000000000000000000000000 limit 500
getblocks -1 to 0000000000000000000000000000000000000000000000000000000000000000 limit 500
Flushing wallet.dat
Flushed wallet.dat 103ms
getblocks -1 to 0000000000000000000000000000000000000000000000000000000000000000 limit 500
received getdata for: block 000000006d7ee37ba38b4c4226b5b635bd06faedda5273eac6e03ee647ff7a21
Flushed 11237 addresses to peers.dat 90ms
ResendWalletTransactions()
Flushed 11237 addresses to peers.dat 68ms
Flushed 11237 addresses to peers.dat 90ms
accepted connection 75.119.251.161:46145
send version message: version 70001, blocks=63403, us=96.241.62.47:18333, them=75.119.251.161:46145, peer=75.119.251.161:46145
receive version message: version 60000, blocks=140700, us=96.241.62.47:18333, them=0.0.0.0:0, peer=75.119.251.161:46145
socket closed
disconnecting node 75.119.251.161:46145
About 20 minutes after restarting, it's imagining there are about 20K blocks over actual testnet height, again.