anchor.diff:  
   // Warning! This function is not supposed to handle existing line breaks,
   // it is only supposed to insert new ones when appropriate.
  -function TfpgCanvas.WrapLine(const s: TfpgString; aMaxLineWidth: integer): string;
  +function TfpgCanvas.AddLineBreaks(const s: TfpgString; aMaxLineWidth: integer): string;
   var
     i, n, ls: integer;
     sub: string;
  
positive.code:   if (txtWrap in AFlags) then
    begin
      for i := 0 to wraplst.Count-1 do
        wraplst[i] := WrapLine(wraplst[i], nw);
      // force line breaks
      wraplst.Text := wraplst.Text;
    end;
  
negative.code: 
    TfpgCanvas = class(TfpgCanvasImpl)
    private
      function    AddLineBreaks(const s: TfpgString; aMaxLineWidth: integer): string;
    public
      constructor Create(awin: TfpgWindow); reintroduce;
      destructor  Destroy; override;
  