anchor.diff:  
   ////////////////////////////////////////////////////////////////////////////////
   
  +function TJC.PorusenaKritickaPodminka():boolean;
  +var bariery:TJCBariery;
  +    bariera:TJCBariera;
  +    Navestidlo:TBlk;
  +begin
  +  Result := false;
  +  Blky.GetBlkByID(Self.fproperties.NavestidloBlok, Navestidlo);
  +  bariery := TJCBariery.Create();
  +  try
  +    Self.KontrolaPodminekVCPC(bariery);
  +    for bariera in bariery do
  +     begin
  +      case (bariera.typ) of
  +        _JCB_BLOK_DISABLED, _JCB_BLOK_NOT_EXIST, _JCB_BLOK_NOT_TYP,
  +        _JCB_SCOM_NOT_USEK, _JCB_USEK_OBSAZENO, _JCB_USEK_SOUPRAVA, _JCB_USEK_AB,
  +        _JCB_VYHYBKA_KONC_POLOHA, _JCB_VYHYBKA_NESPAVNA_POLOHA, _JCB_PREJEZD_NOUZOVE_OTEVREN,
  +        _JCB_PREJEZD_PORUCHA, _JCB_ODVRAT_KONC_POLOHA, _JCB_TRAT_ZAK, _JCB_TRAT_OBSAZENO,
  +        _JCB_TRAT_ZADOST, _JCB_TRAT_NESOUHLAS, _JCB_TRAT_NO_BP, _JCB_ZAMEK_NEUZAMCEN:
  +          Exit(true);
  +      end;
  +     end;
  +  finally
  +    bariery.Free();
  +  end;
  +end;
  +
  +////////////////////////////////////////////////////////////////////////////////
  +
   end.//unit
  
positive.code:       function GetSoupravaIndex(nav:TBlk = nil; usek:TBlk = nil):Integer;       // vraci cislo soupravy na useku pred navestidlem
  
        function GetAB():boolean;
  
     public
  
  
negative.code: 
        (Navestidlo as TBlkSCom).DNjc := Self;
  
        if (Self.PorusenaKritickaPodminka()) then
         begin
          // Nepostavit navestidlo!
          Self.Krok := 16;
          Exit();
         end;
  
        if ((Navestidlo as TBlkSCom).ZAM) then
         begin
          writelog('Krok 14 : navestidlo: zamkle na STUJ',WR_VC);
  