anchor.diff:    ReadObjectFromConfig(FConfigData,
       function (const Instance : TObject; const Prop : TRttiProperty) : Boolean
       begin
  -      Result := Prop.IsWritable and FilterConfigProp(Instance, Prop);
  +      Result := (Prop.IsWritable or Prop.PropertyType.IsInstance) and FilterConfigProp(Instance, Prop);
       end
     );
   end;
  
positive.code:     Ctx : TRttiContext;
      InstanceType : TRttiInstanceType;
      Prop : TRttiProperty;
  begin
    Ctx := TRttiContext.Create;
    try
  
negative.code:           Prop.SetValue(Instance, FConfigFile.Config.ReadInteger(Instance.QualifiedClassName, Prop.Name,
                                                                   GetPropDefaultValue(Prop).AsVariant))
          else
          if Prop.PropertyType.IsString then
            Prop.SetValue(Instance, FConfigFile.Config.ReadString(Instance.QualifiedClassName, Prop.Name,
                                                                  GetPropDefaultValue(Prop).AsVariant))
          else
          if Prop.PropertyType.IsArray then
          begin
            sArray := FConfigFile.Config.ReadString(Instance.QualifiedClassName, Prop.Name, String.Empty);
  
            if sArray.IsEmpty then
            begin
              if FConfigFile.Config.ValueExists(Instance.QualifiedClassName, Prop.Name) then
                V := TValue.Empty
              else
                V := GetPropDefaultValue(Prop);
            end
            else
            if Prop.PropertyType.Handle.TypeData.DynArrElType^.IsString then
            begin
              L := TStringList.Create;
              try
                L.Delimiter := ',';
                L.StrictDelimiter := True;
                L.CommaText := sArray;
  
                SetLength(arrV, L.Count);
                for i := 0 to L.Count - 1 do
                  arrV[i] := L[i];
              finally
                L.Free;
              end;
  
              V := TValue.FromArray(Prop.PropertyType.Handle, arrV);
            end;
  
            Prop.SetValue(Instance, V);
          end
          else
            Assert(False, 'Unhandled property type kind while deserializing object from config.');
        end;
    finally
      Ctx.Free;
  