I stake a Cryptocurrency based of Peercoin on a Server since years. Multiple months ago this stopped because of the following error:

Coind: kernel.cpp:372: unsigned int GetStakeModifierChecksum(const CBlockIndex*): Assertion `pindex->pprev || pindex->GetBlockHash() == (!fTestNet ? hashGenesisBlock : hashGenesisBlockTestNet)' failed.

This Error often comes when your Blockchain is corrupted. The cause of my problem was an unexpected downtime.

To fix this:

  1. Stop the Daemon
  2. Backup the Folder of the Coin
  3. Delete everything except wallet.dat, peers.dat and *.conf
  4. Start the Daemon again (/path/to/coin/src/Coind -daemon -datadir=/path/to/coin/folder/)

I also published a German blog post about compiling AltCoins.