anchor.diff:                FValuesDictionary.Add(str, FValuesAsStrings); // FValuesAsString is just a placeholder, to be able to check return value of find as nil
             end;
           end;
  -        Result := FValuesDictionary.Find(lowercase(VarToStr(FValue))) <> nil;
  -      end;
  -  end;
  +        Result := FValuesDictionary.Find(lowercase(VarToStr(aActualValue))) <> nil;
  +      end;
  +  end;
  +end;
  +
  +procedure TmFilter.EndEvaluation;
  +begin
  +  FreeAndNil(FValuesAsStrings);
  +  FreeAndnil(FValuesDictionary);
   end;
   
   procedure TmFilter.CopyFrom(aSource: TmFilter);
  
positive.code:     constructor Create;
      destructor Destroy; override;
  
      function Evaluate (aActualValue : Variant) : boolean;
      procedure CopyFrom (aSource : TmFilter);
  
      function GetFormattedValueForSQL : Variant;
  
negative.code:       end;
      foIn:
        begin
          if (FValuesAsStrings.Count = 0) then
          begin
            ConvertVariantToStringList(FValue, FValuesAsStrings);
            for i := 0 to FValuesAsStrings.Count - 1 do
            begin
              str := lowercase(FValuesAsStrings.Strings[i]);
  