anchor.diff:  
    if (Self.frozen) then
     begin
  -   if (((TrkSystem.status <> Ttrk_status.TS_ON) or (not Self.ZesNapajeni)) and (Self.ZesZkrat)) then
  +   if (((TrkSystem.status <> Ttrk_status.TS_ON) or (not Self.ZesNapajeni) or (Now < TrkSystem.DCCGoTime+EncodeTime(0, 0, 1, 0))) and (Self.ZesZkrat)) then
       begin
        Self.UsekStav.zkrat := false;
        for i := 0 to Self.ORsRef.Cnt-1 do
          Self.ORsRef.ORs[i].ZKratBlkCnt := Self.ORsRef.ORs[i].ZKratBlkCnt - 1;
  -     Self.Change();
  +     Self.Change(true);
       end;
  -   if ((TrkSystem.status = Ttrk_status.TS_ON) and (not Self.ZesZkrat) and (Self.ZesNapajeni)) then Self.UnFreeze();
  +   if ((TrkSystem.status = Ttrk_status.TS_ON) and (not Self.ZesZkrat) and (Self.ZesNapajeni) and
  +       (Now > TrkSystem.DCCGoTime+EncodeTime(0, 0, 1, 0))) then Self.UnFreeze();
      Exit();
     end;
   
  
positive.code: end;//procedure
  
  procedure TBlkUsek.MenuDeleteLokClick(SenderPnl:TIdContext; SenderOR:TObject);
  begin
   if (Self.Souprava > -1) then
    begin
     Self.UsekStav.VlakPresun := false;
     Soupravy.RemoveSpr(Self.Souprava);
  
negative.code:  if (Self.frozen) then
     Self.last_zes_zkrat := state;
  
   if ((state) and (not Self.frozen) and ((TrkSystem.status <> Ttrk_status.TS_ON) or (not Self.ZesNapajeni) or (Now < TrkSystem.DCCGoTime+EncodeTime(0, 0, 1, 0)))) then
    begin
     Self.Freeze();
     Exit();
    end;
  
   if (state) then
    begin
     // do OR oznamime, ze nastal zkrat, pak se prehraje zvuk v klientech...
  