anchor.diff:    begin
      if (i < 0) then continue;    // i = -1 kdyz se kontroluje blok pred navestidlem, -2 pokud je navestidlo na STUJ, nebo zamkle
   
  -   Blky.GetBlkByID(Self.fproperties.Useky[i], Usek);
  +   Blky.GetBlkByID(Self.fproperties.Useky[i], TBlk(Usek));
   
      // druha cast podminky je tu pro pripad, kdy by byl na konci posunove cesty obsazeny usek
  -   if (((Usek as TBlkUsek).Obsazeno = obsazeno) and ((i < Self.fproperties.Useky.Count-1) or (Self.RozpadBlok > Self.fproperties.Useky.Count-2) or (Self.fproperties.TypCesty <> TJCType.posun))) then
  +   if ((Usek.Obsazeno = obsazeno) and ((i < Self.fproperties.Useky.Count-1) or (Self.RozpadBlok > Self.fproperties.Useky.Count-2) or (Self.fproperties.TypCesty <> TJCType.posun))) then
       begin
        if (i = Self.RozpadBlok) then
         begin
          //pokud se tento usek rovna RozpadBloku
  -       (Usek as TBlkUsek).Zaver := TZaver.nouz;
  +       Usek.Zaver := TZaver.nouz;
   
          if (Self.fproperties.TypCesty = TJCType.vlak) then
           begin
  
positive.code:   if ((Self.RozpadRuseniBlok >= 0) and (Self.RozpadRuseniBlok < Self.RozpadBlok-1)) then
     begin
      //ziskani dotazovaneho useku
      Blky.GetBlkByID(Self.fproperties.Useky[Self.RozpadRuseniBlok], Usek);
  
      if (Self.RozpadRuseniBlok+1 < Self.fproperties.Useky.Count) then
        Blky.GetBlkByID(Self.fproperties.Useky[Self.RozpadRuseniBlok+1], DalsiUsek)
      else
        DalsiUsek := nil;
  
      if (((Usek as TBlkUsek).Zaver = TZaver.nouz) and ((Usek as TBlkUsek).Obsazeno = uvolneno) and
          ((DalsiUsek = nil) or (TBlkUsek(DalsiUsek).Obsazeno = TUsekStav.obsazeno) or
          (TBlkUsek(DalsiUsek).GetSettings.RCSAddrs.Count = 0))) then
       begin
        // cesta se rozpada...
        if (Self.AB) then
          (Usek as TBlkUsek).Zaver := TZaver.AB
        else
          (Usek as TBlkUsek).Zaver := TZaver.no;
  
        Self.RozpadRuseniBlok := Self.RozpadRuseniBlok + 1;
  
        if ((Self.fproperties.TypCesty = TJCType.vlak) and ((Usek as TBlkUsek).IsSouprava())) then
         begin
          writelog('JC '+Self.nazev+': smazana souprava '+Soupravy.GetSprNameByIndex((Usek as TBlkUsek).Souprava)+
            ' z bloku '+Usek.name, WR_SPRPREDAT, 0);
          (Usek as TBlkUsek).RemoveSoupravy();
         end;
       end;//if Self.RozpadBlok >= 1
     end;//if (cyklus2 = Self.RozpadRuseniBlok)
  
negative.code: 
  
        end else begin//if Self.RozpadBlok = 0
         if (Integer(Usek.Zaver) > 0) then
          begin
           //pokud jsme na jinem useku, nez RozpadBlok
           if ((Nav.Navest > 0) and (Nav.DNjc = Self)) then
            begin
             if (Self.fstaveni.SenderPnl <> nil) and (Self.fstaveni.SenderOR <> nil) then
               ORTCPServer.BottomError(Self.fstaveni.SenderPnl, 'Chyba povolovac nvsti '+Nav.name,
  