Filtering logical error in TAdvStringGrid

When I set all grid filter data to operation to foOR  and try to filter it - it always return true (no rows are filtered). I look at the code AdvGrid.pas, MatchFilter function and I think it contains logical error.

When I set operation to foOR grid always return all the rows!

You assign True to result before the main loop and in that loop you check Result := Result OR temp (line 25671). For foOr it will alway return true because Result is assigned to true at function start. Shoudn't it be something like Result := FFilter.Count = 0?

And one more - Filter.EndUpdate doesn't update the filter. I must set FilterActive first to False then to True for filter refresh.