anchor.diff:          if FColumns[i].SortDirection <> sdNone then
           begin
             // try to find column in existing filters
  -          LFilterFound := False;
  -          for j := 0 to FFilters.Count-1 do
  -            if FFilters[j].ColumnName = LData.Columns[i] then
  -            begin
  -              LFilter := FFilters[j];
  -              LFilter.Sort := FColumns[i].SortDirection;
  -              FFilters[j] := LFilter;
  -              LFilterFound:=true;
  -            end;
             // if filter not found we need to create it later
  -          if not LFilterFound then
  +          if not UpdateFilterSortDirection(LData.Columns[i], FColumns[i].SortDirection) then
               LColumnsToAdd.Add(i);
  -        end;
  +        end else
  +          UpdateFilterSortDirection(LData.Columns[i], sdNone);
   
         // add missing filters
         FFilters.Count:=FFilters.Count + LColumnsToAdd.Count;
  
positive.code:     LFilterFound: boolean;
      LFilter: TColumnFilter;
      LData: PDataTable;
    begin
      LColumnsToAdd := TList<Integer>.Create;
  
  
negative.code:           end;
          end;
  
          FFilters.Add(LColumnFilter);
        end;
      end;
  
  