anchor.diff:          exit;
         end;
         // Only process when in current address, prevent do it when reading operations from file
  -      Result := op.DoOperation(FPreviousUpdatedBlocks, FSafeBoxTransaction, errors);
  +      if FOperationsHashTree.CanAddOperationToHashTree(op) then begin
  +        Result := op.DoOperation(FPreviousUpdatedBlocks, FSafeBoxTransaction, errors);
  +      end else begin
  +        errors := 'Cannot add operation. Limits reached';
  +        Exit;
  +      end;
       end else Result := true;
       if Result then begin
         if FOperationsHashTree.AddOperationToHashTree(op) then begin
  
positive.code:     FTotalAmount : Int64;
      FTotalFee : Int64;
      FMax0feeOperationsBySigner : Integer;
      function InternalAddOperationToHashTree(list : TList; op : TPCOperation; CalcNewHashTree : Boolean) : Boolean;
      Function FindOrderedByOpReference(lockedThreadList : TList; const Value: TOpReference; var Index: Integer): Boolean;
      Function FindOrderedBySha(lockedThreadList : TList; const Value: TRawBytes; var Index: Integer): Boolean;
  
negative.code:   end;
  end;
  
  function TOperationsHashTree.CanAddOperationToHashTree(op: TPCOperation): Boolean;
  Var lockedList : TList;
  begin
    lockedList := FHashTreeOperations.LockList;
    Try
      Result := InternalCanAddOperationToHashTree(lockedList,op);
    Finally
      FHashTreeOperations.UnlockList;
    End;
  end;
  
  procedure TOperationsHashTree.ClearHastThree;
  var l : TList;
    i : Integer;
  