anchor.diff:        //{$IFDEF MSWINDOWS}
         //SendMessage(FMemoLog.handle, WM_VSCROLL, SB_Bottom, 0);
         //{$ENDIF MSWINDOWS}
  +      { TODO : Keep bottom line of Memo visible by scrolling }
       end;
       LPosStart := 0;
  -    LPosEnd   := ListWorking.Count - 1;
  -  end;
  -
  -  for i := LPosStart to LPosEnd do begin
  +    LPosEnd   := WorkingList.Count - 1;
  +  end;
  +
  +  for i := LPosStart to LPosEnd do
  +  begin
       if ThrdLog.Terminated then
         Break; //==>
  -    LLogEvent := TtiLogEvent(ListWorking.Items[i]);
  +    LLogEvent := TtiLogEvent(WorkingList.Items[i]);
       WriteToMemo(LLogEvent.AsLeftPaddedString);
     end;
  -
  -  ListWorking.Clear;
   end;
   
   procedure TtiLogToGUI.FormClearMenuItemClick(Sender: TObject);
  
positive.code: const
    ciMaxLineCount = 200;
  begin
    if ThrdLog.Terminated then
      Exit; //==>
  
    inherited WriteToOutput;
  
    if ListWorking.Count > ciMaxLineCount * 2 then
    begin
      FMemoLog.Lines.Clear;
      LPosStart := ListWorking.Count - 1 - ciMaxLineCount;
      LPosEnd   := ListWorking.Count - 1;
    end else
    begin
      if FMemoLog.Lines.Count > ciMaxLineCount then
      begin
  
negative.code:     procedure   WriteToMemo(const AMessage: string);
    protected
      procedure   WriteToOutput; override;
      procedure   WorkingListToOutput; override;
      procedure   SetSevToLog(const AValue: TtiSevToLog); override;
    public
      constructor Create; override;
  