Bitcoin-QT freezes when I try to run it with the -rescan command...
It takes a long time to run, it can look like it locked up since there is no progress bar or such.
You can also start Bitcoin-Qt with the -salvagewallet option just for another round of validation.