anchor.diff:            else minBlockResend:=1;
             maxResend := CT_MaxResendMemPoolOperations;
             i := 0;
  -          While (opsht.OperationsCount<maxResend) And (i<FOperations.Count) do begin
  -            resendOp := FOperations.Operation[i];
  +          LLockedMempool := LockMempoolRead;
  +          Try
  +
  +          While (opsht.OperationsCount<maxResend) And (i<LLockedMempool.Count) do begin
  +            resendOp := LLockedMempool.Operation[i];
               j := FSentOperations.GetTag(resendOp.Sha256);
               if (j=0) Or (j<=minBlockResend) then begin
                 // Only will "re-send" operations that where received on block <= minBlockResend
                 opsht.AddOperationToHashTree(resendOp);
                 // Add to sent operations
  -              FSentOperations.SetTag(resendOp.Sha256,FOperations.OperationBlock.block); // Set tag new value
  -              FSentOperations.Add(FOperations.Operation[i].Sha256,Bank.LastBlockFound.OperationBlock.block);
  +              FSentOperations.SetTag(resendOp.Sha256,LLockedMempool.OperationBlock.block); // Set tag new value
  +              FSentOperations.Add(LLockedMempool.Operation[i].Sha256,Bank.LastBlockFound.OperationBlock.block);
               end else begin
                 {$IFDEF HIGHLOG}TLog.NewLog(ltInfo,ClassName,'Sanitized operation not included to resend (j:'+IntToStr(j)+'>'+inttostr(minBlockResend)+') ('+inttostr(i+1)+'/'+inttostr(FOperations.Count)+'): '+FOperations.Operation[i].ToString);{$ENDIF}
               end;
               inc(i);
             end;
  -          If FOperations.Count>0 then begin
  -            TLog.NewLog(ltinfo,classname,Format('Resending %d operations for new block (Buffer Pending Operations:%d)',[opsht.OperationsCount,FOperations.Count]));
  +          If LLockedMempool.Count>0 then begin
  +            TLog.NewLog(ltinfo,classname,Format('Resending %d operations for new block (Buffer Pending Operations:%d)',[opsht.OperationsCount,LLockedMempool.Count]));
               {$IFDEF HIGHLOG}
               if opsht.OperationsCount>0 then begin
                 for i := 0 to opsht.OperationsCount - 1 do begin
  
positive.code:   end;
  end;
  
  procedure TNode.OnBankNewBlock(Sender: TObject);
  begin
    FOperations.SanitizeOperations;
    NotifyBlocksChanged;
  end;
  
  
negative.code:       i := 0;
        While (i<FBufferAuxWaitingOperations.OperationsCount) do begin
          ActOp := FBufferAuxWaitingOperations.GetOperation(i);
          If ALockedMempool.AddOperation(true,ActOp,e) then begin
            TLog.NewLog(ltInfo,Classname,Format('AddOperation FromBufferWaitingOperations %d/%d: %s',[i+1,FBufferAuxWaitingOperations.OperationsCount,ActOp.ToString]));
            inc(nAdded);
            valids_operations.AddOperationToHashTree(ActOp);
            FBufferAuxWaitingOperations.Delete(i);
          end else begin
            sAcc := ALockedMempool.SafeBoxTransaction.Account(ActOp.SignerAccount);
            If (sAcc.n_operation>ActOp.N_Operation) Or
               ((sAcc.n_operation=ActOp.N_Operation) AND (sAcc.balance>0)) then begin
               FBufferAuxWaitingOperations.Delete(i);
  