anchor.diff:          else
           if Prop.PropertyType.IsOrdinal then
             //TODO: third patameter must be a routine for getting the default value (parameterized?)
  -          Prop.SetValue(Instance, FConfigFile.Config.ReadInteger(Instance.QualifiedClassName, Prop.Name, 0))
  +          Prop.SetValue(Instance, FConfigFile.Config.ReadInteger(Instance.QualifiedClassName, Prop.Name,
  +                                                                 GetPropDefaultValue<Integer>(Prop)))
           else
             case Prop.PropertyType.TypeKind of
               tkString, tkLString, tkWString, tkUString:
                 //TODO: third patameter must be a routine for getting the default value (parameterized?)
  -              Prop.SetValue(Instance, FConfigFile.Config.ReadString(Instance.QualifiedClassName, Prop.Name, String.Empty));
  +              Prop.SetValue(Instance, FConfigFile.Config.ReadString(Instance.QualifiedClassName, Prop.Name,
  +                                                                    GetPropDefaultValue<String>(Prop)));
             else
               Assert(False, 'Unhandled property type kind while deserializing object from config.');
             end;
  
positive.code:   FillFileFromData;
  end;
  
  procedure TConfigManager.ReadObjectFromConfig(const Instance : TObject; Filter : TFilterPropPredicate);
    var
      Ctx : TRttiContext;
  
negative.code: 
  procedure TConfigManager.SetDefaults;
  begin
    SetObjectPropsDefaults(FConfigData);
  end;
  
  procedure TConfigManager.SetObjectPropsDefaults(const Instance : TObject);
    var
      Ctx : TRttiContext;
      InstanceType : TRttiInstanceType;
      Prop : TRttiProperty;
  begin
    Ctx := TRttiContext.Create;
    try
      InstanceType := Ctx.GetType(Instance.ClassType) as TRttiInstanceType;
  
      for Prop in InstanceType.GetProperties do
        if Prop.PropertyType.IsInstance then
          SetObjectPropsDefaults(Prop.GetValue(Instance).AsObject)
        else
          Prop.SetValue(Instance, GetPropDefaultValue<TValue>(Prop));
    finally
      Ctx.Free;
    end;
  end;
  
  procedure TConfigManager.WriteObjectToConfig(const Instance : TObject; Filter : TFilterPropPredicate);
  