diff --git a/src/validation.cpp b/src/validation.cpp --- a/src/validation.cpp +++ b/src/validation.cpp @@ -2737,10 +2737,12 @@ DisconnectedBlockTransactions disconnectpool; while (chainActive.Contains(pindex)) { CBlockIndex *pindexWalk = chainActive.Tip(); - pindexWalk->nStatus = invalidate - ? pindexWalk->nStatus.withFailedParent() - : pindexWalk->nStatus.withParkedParent(); - setDirtyBlockIndex.insert(pindexWalk); + if (pindexWalk != pindex) { + pindexWalk->nStatus = invalidate + ? pindexWalk->nStatus.withFailedParent() + : pindexWalk->nStatus.withParkedParent(); + setDirtyBlockIndex.insert(pindexWalk); + } // ActivateBestChain considers blocks already in chainActive // unconditionally valid already, so force disconnect away from it.