make a backup of your wallet.dat
delete everything in the folder where it was
run latest qt
wait for new chain
close client when new chain full
move backup wallet over the one that the qt just created
launch qt with --salvagewallet option
just doing the --salvagewallet option won't do it. It's probably something in chainstate that needs killed, but it's easier to just wipe the whole folder and MAKE SURE YOUR BACKUP IS NOT IN THERE WHEN YOU WIPE IT!
I have a little bit different issue and it didn't help. My denominate transaction got stuck for 6 hours and --salvagewallet option works strangely. It returns only 500 drk, not my total balance(~623.6). What do?
http://i.imgur.com/Z5AlGPL.png