Well, it doesn't like your current Wallet.dat.
There were instances where an older release of the client was ignorant of the wallet.dat becoming corrupted, and only did the newer releases detect that. So if that was the case, one could downgrade back to the old version, export the private keys, then create a new wallet in the latest release and import the keys.
Of course, if you have a recent backup try using that first to see if the problem also exists with that.
Some people have had luck accessing the wallet.dat using pywallet even when the Bitcoin.org client couldn't.
Worst case scenario try launching the Bitcoin-Qt client with -salvagewallet, which will cause the current wallet.dat to be renamed, and then it will create a new one with what it was able to pull from the damaged wallet.dat. There's no guarantee it will pull all the keys/addresses but if nothing else works this might resolve your problem.