anchor.diff:    FAccountsGrid := AAccountsGrid;
     FAccountsGridFilter := AAccountsGridFilter;
     FisProcessing := True;
  +  FProcessedList := TOrderedCardinalList.Create;
     Suspended := False;
   end;
   
   destructor TAccountsGridUpdateThread.Destroy;
   begin
  +  FreeAndNil(FProcessedList);
     inherited;
   end;
   
   procedure TAccountsGridUpdateThread.SynchronizedOnTerminated;
  -begin
  -  FAccountsGrid.FAccountsBalance := FBalance;
  -  if Assigned(FAccountsGrid.FOnAccountsGridUpdatedData) then  FAccountsGrid.FOnAccountsGridUpdatedData(FAccountsGrid);
  +var LacclTemp : TOrderedCardinalList;
  +begin
  +  if Not Terminated then begin
  +    FAccountsGrid.FAccountsBalance := FBalance;
  +    LacclTemp := FAccountsGrid.LockAccountsList;
  +    try
  +      LacclTemp.CopyFrom( FProcessedList );
  +    finally
  +      FAccountsGrid.UnlockAccountsList;
  +    end;
  +    if Assigned(FAccountsGrid.FOnAccountsGridUpdatedData) then  FAccountsGrid.FOnAccountsGridUpdatedData(FAccountsGrid);
  +  end;
   end;
   
   { TAccountsGrid }
  
positive.code:     FAccountsGridFilter : TAccountsGridFilter;
      FBalance : Int64;
      FIsProcessing : Boolean;
    protected
      procedure SynchronizedOnTerminated;
      procedure BCExecute; override;
  
negative.code: { TAccountsGridUpdateThread }
  
  procedure TAccountsGridUpdateThread.BCExecute;
  Var
    l : TOrderedCardinalList;
    i,j : Integer;
    c  : Cardinal;
  