everytime you restart windows wallet, you need to sync blocks again from beginning

I noticed this as well. Something isn't right. Best to run in a virtualbox for now. I'm going to take a closer look at the code in the next few hours.
Been trying to figure out how to fix this as well.
The reason it keeps re-syncing is probably because:
void init_blockindex(leveldb::Options& options, bool fRemoveOld = [b]true[/b]) {
// First time init.
filesystem::path directory = GetDataDir() / "txleveldb";
if (fRemoveOld)
filesystem::remove_all(directory); // remove directory
if true is set to false, the wallet brings up an error stating "cannot find blkindex.dat"
Setting the value to true was the only option until the real issue can be found...
Still trying to figure this out, apologies for any inconvenience!