anchor.diff:    TAppFrameThread = class(TThread)
     private
       CurFrame: TEditorFrame;
  +    procedure HandleOneFrame;
       procedure NotifyFrame1;
       procedure NotifyFrame2;
     protected
  
positive.code:     Sleep(cSleepTime);
      if not UiOps.NotificationEnabled then Continue;
  
     EnterCriticalSection(AppFrameCriSec);
     try
      for i:= 0 to AppFrameList.Count-1 do
      begin
        CurFrame:= TEditorFrame(AppFrameList[i]);
        if CurFrame.FileName='' then Continue;
        if not CurFrame.NotifEnabled then Continue;
  
        AppGetFileProps(CurFrame.FileName, NewProps);
        if not CurFrame.FileProps.Inited then
        begin
          Move(NewProps, CurFrame.FileProps, SizeOf(NewProps));
        end
        else
        if NewProps<>CurFrame.FileProps then
        begin
          Move(NewProps, CurFrame.FileProps, SizeOf(NewProps));
          Synchronize(@NotifyFrame1);
        end;
  
        if not CurFrame.EditorsLinked then
          if CurFrame.FileName2<>'' then
          begin
            AppGetFileProps(CurFrame.FileName2, NewProps);
            if not CurFrame.FileProps2.Inited then
            begin
              Move(NewProps, CurFrame.FileProps2, SizeOf(NewProps));
            end
            else
            if NewProps<>CurFrame.FileProps2 then
            begin
              Move(NewProps, CurFrame.FileProps2, SizeOf(NewProps));
              Synchronize(@NotifyFrame2);
            end;
          end;
      end;
  
     finally
      LeaveCriticalSection(AppFrameCriSec);
     end;
    until false;
  end;
  
  
negative.code:   CurFrame.NotifyAboutChange(CurFrame.Ed2);
  end;
  
  procedure TAppFrameThread.HandleOneFrame;
  var
    NewProps: TAppFileProps;
  begin
    AppGetFileProps(CurFrame.FileName, NewProps);
    if not CurFrame.FileProps.Inited then
    begin
      Move(NewProps, CurFrame.FileProps, SizeOf(NewProps));
    end
    else
    if NewProps<>CurFrame.FileProps then
    begin
      Move(NewProps, CurFrame.FileProps, SizeOf(NewProps));
      Synchronize(@NotifyFrame1);
    end;
  
    if not CurFrame.EditorsLinked then
      if CurFrame.FileName2<>'' then
      begin
        AppGetFileProps(CurFrame.FileName2, NewProps);
        if not CurFrame.FileProps2.Inited then
        begin
          Move(NewProps, CurFrame.FileProps2, SizeOf(NewProps));
        end
        else
        if NewProps<>CurFrame.FileProps2 then
        begin
          Move(NewProps, CurFrame.FileProps2, SizeOf(NewProps));
          Synchronize(@NotifyFrame2);
        end;
      end;
  end;
  
  procedure TAppFrameThread.Execute;
  const
    cSleepTime = 500;
  var
    i: integer;
  begin
    repeat
  