anchor.diff:    
     TfpgScrollFrame = class;
   
  -  { TfpgAutoSizingFrame }
  -
  -  TfpgAutoSizingFrame = class (TfpgFrame)
  +  { TfpgEmbeddingFrame }
  +
  +  TfpgEmbeddingFrame = class (TfpgFrame)
  +  // The purpose of the EmbeddingFrame is to pass scroll events to the ParentScrollFrame
     private
  -    FMarginBR : integer;
  -    FParentScrollFrame : TfpgScrollFrame; // it's actually the grandparent
  -    procedure SetMarginBR (AValue: integer);
  -    procedure UpdatePos;
  +    FParentScrollFrame : TfpgScrollFrame;
     protected
       procedure HandleMouseScroll(x, y: integer; shiftstate: TShiftState;
           delta: smallint); override;
       procedure HandleMouseHorizScroll(x, y: integer; shiftstate: TShiftState; 
           delta: smallint); override;
     public
  +    property ParentScrollFrame : TfpgScrollFrame read FParentScrollFrame write FParentScrollFrame;
  +  end;
  +
  +  { TfpgAutoSizingFrame }
  +
  +  TfpgAutoSizingFrame = class (TfpgEmbeddingFrame)
  +  private
  +    FMarginBR : integer;
  +    procedure SetMarginBR (AValue: integer);
  +  public
       procedure AdjustDimsFor (w : TfpgWidget; updatewp: boolean = true);
       procedure AdjustDimsWithout (w : TfpgWidget);
       procedure RecalcFrameSize;
       property MarginBR : integer read FMarginBR write SetMarginBR; // bottom-right margin
  -    property ParentScrollFrame : TfpgScrollFrame read FParentScrollFrame write FParentScrollFrame;
     end;
   
     TfpgASFrameClass = class of TfpgAutoSizingFrame;
  
positive.code: begin
    inherited Create(AOwner);
  
    FVisibleArea := TfpgFrame.Create(self);
    FVisibleArea.SetPosition(0, 0, 1, 1);
  
    FContentFrame := TfpgAutoSizingFrame.Create(FVisibleArea);
    FContentFrame.SetPosition(0, 0, 1, 1);
  
negative.code: begin
    inherited Create(AOwner);
  
    FVisibleArea := TfpgEmbeddingFrame.Create(self);
    FVisibleArea.SetPosition(0, 0, 1, 1);
    FVisibleArea.ParentScrollFrame := self;
  
    FContentFrame := ContentFrameType.Create(FVisibleArea);
    FContentFrame.SetPosition(0, 0, 1, 1);
    FContentFrame.ParentScrollFrame := self;
  end;
  
  