anchor.diff:      if msgdt^.ctxt = aCtxt then
         List.Items.Delete(List.Items[i]);
     end;
  +  list.EndUpdate;
   end;
   
   procedure TCEMessagesWidget.clearByData(aData: Pointer);
  
positive.code: 
  procedure TCEMessagesWidget.clearOutOfRangeMessg;
  begin
    while List.Items.Count > fMaxMessCnt do
      List.Items.Delete(List.Items.GetFirstNode);
  end;
  
  procedure TCEMessagesWidget.scrollToBack;
  
negative.code: begin
    if updating then
      exit;
    List.BeginUpdate;
    for i := 0 to List.Items.Count-1 do
    begin
      itm := List.Items[i];
  