diff --git a/src/main.cpp b/src/main.cpp index 049a732d5..663e94e26 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3978,8 +3978,10 @@ bool static DisconnectTip(CValidationState &state, bool fBare = false) { if ((i == (block.vtx.size() - 1)) && (ASSETCHAINS_STAKED != 0 && (komodo_isPoS((CBlock *)&block,pindexDelete->GetHeight()) != 0))) { #ifdef ENABLE_WALLET - LOCK2(cs_main, pwalletMain->cs_wallet); - pwalletMain->EraseFromWallet(tx.GetHash()); + if (!fDisableWallet) { + LOCK(pwalletMain->cs_wallet); + pwalletMain->EraseFromWallet(tx.GetHash()); + } #endif } else diff --git a/src/miner.cpp b/src/miner.cpp index f131bc90e..dce1ff81f 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -803,6 +803,8 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32 //fprintf(stderr,"check validity\n"); if ( !TestBlockValidity(state, *pblock, pindexPrev, false, false)) // invokes CC checks { + LEAVE_CRITICAL_SECTION(cs_main); + LEAVE_CRITICAL_SECTION(mempool.cs); throw std::runtime_error("CreateNewBlock(): TestBlockValidity failed"); } //fprintf(stderr,"valid\n");