anchor.diff:  
   //vytvoreni menu pro potreby konkretniho bloku:
   function TBlkVyhybka.ShowPanelMenu(SenderPnl:TIdContext; SenderOR:TObject; rights:TORCOntrolRights):string;
  -var spojka:TBlk;
  +var spojka:TBlkVyhybka;
   begin
    Result := inherited;
   
  - Blky.GetBlkByID(Self.VyhSettings.spojka, spojka);
  + Blky.GetBlkByID(Self.VyhSettings.spojka, TBlk(spojka));
   
    if ((Self.Zaver = TZaver.no) and (not Self.vyhZaver) and (not Self.redukce_menu) and
       ((Self.zamek = nil) or ((Self.zamek as TBlkZamek).klicUvolnen)) and
  -  ((spojka = nil) or (((spojka as TBlkVyhybka).Zaver = TZaver.no) and (not (spojka as TBlkVyhybka).vyhZaver)))) then
  +  ((spojka = nil) or ((spojka.Zaver = TZaver.no) and (not spojka.vyhZaver)))) then
     begin
      // na vyhybce neni zaver a menu neni redukovane
   
  -   if ((Self.Obsazeno = TUsekStav.obsazeno) or ((spojka <> nil) and ((spojka as TBlkVyhybka).Obsazeno = TUsekStav.obsazeno))) then
  +   if ((Self.Obsazeno = TUsekStav.obsazeno) or ((spojka <> nil) and (spojka.Obsazeno = TUsekStav.obsazeno))) then
       begin
        if (Self.VyhStav.poloha = plus) then Result := Result + '!NS-,';
        if (Self.VyhStav.poloha = minus) then Result := Result + '!NS+,';
  
positive.code: ////////////////////////////////////////////////////////////////////////////////
  
  procedure TBlkVyhybka.Unlock();
  var spojka:TBlk;
  begin
   Blky.GetBlkByID(Self.VyhSettings.spojka, spojka);
   if ((spojka = nil) or ((((spojka as TBlkVyhybka).Zaver = TZaver.no) or ((spojka as TBlkVyhybka).Zaver = TZaver.staveni)) and (not (spojka as TBlkVyhybka).vyhZaver) and (not (spojka as TBlkVyhybka).Stav.locked))) then
    begin
     try
       if (RCSi.Started) then
  
negative.code: ////////////////////////////////////////////////////////////////////////////////
  
  function TBlkVyhybka.SetPoloha(new:TVyhPoloha; zamek:boolean = false; nouz:boolean = false; callback_ok:TNotifyEvent = nil; callback_err:TNotifyEvent = nil):Integer;
  var spojka:TBlkVyhybka;
      oblr:TOR;
  begin
    if (not GetFunctions.GetSystemStart) then Exit(1);
    if (Self.VyhSettings.RCSAddrs.Count < 4) then Exit(2);
    if ((new <> plus) and (new <> minus)) then Exit(3);
  
    // V tomto momente je klicove ziskat aktualni polohu vyhybky, jinak by mohlo dojit
    // k zacykleni pri staveni spojek.
    Self.UpdatePoloha();
    Blky.GetBlkByID(Self.VyhSettings.spojka, TBlk(spojka));
  
    if (new <> Self.VyhStav.poloha) then
     begin
  