diff --git a/core/state/parallel_statedb.go b/core/state/parallel_statedb.go
index 1d9a7bf0ae..4aff3ce5ea 100644
--- a/core/state/parallel_statedb.go
+++ b/core/state/parallel_statedb.go
@@ -1874,7 +1874,7 @@ func (s *ParallelStateDB) reset() {
 	s.parallel.nonceChangesInSlot = addressToStructPool.Get().(map[common.Address]struct{})
 	s.parallel.nonceReadsInSlot = addressToUintPool.Get().(map[common.Address]uint64)
 	s.parallel.balanceChangesInSlot = addressToStructPool.Get().(map[common.Address]struct{})
-	s.parallel.balanceReadsInSlot = balancePool.Get().(map[common.Address]*big.Int)
+	s.parallel.balanceReadsInSlot = balancePool.Get().(map[common.Address]*uint256.Int)
 	s.parallel.locatStateObjects = addressToStateObjectsPool.Get().(map[common.Address]*stateObject)
 	s.parallel.codeReadsInSlot = addressToBytesPool.Get().(map[common.Address][]byte)
 	s.parallel.codeHashReadsInSlot = addressToHashPool.Get().(map[common.Address]common.Hash)
diff --git a/core/state/statedb.go b/core/state/statedb.go
index e814343bf9..980b1eff64 100644
--- a/core/state/statedb.go
+++ b/core/state/statedb.go
@@ -701,6 +701,7 @@ func (s *StateDB) SelfDestruct(addr common.Address) {
 	})
 	stateObject.markSelfdestructed()
 	stateObject.data.Balance = new(uint256.Int)
+	stateObject.dirtyBalance = new(uint256.Int)
 }
 
 func (s *StateDB) Selfdestruct6780(addr common.Address) {