anchor.diff:      fNodeList: TKMPointList; // Used to calc delivery bid
       {$ENDIF}
   
  +    function GetSerfActualPos(aSerf: TKMUnit): TKMPoint;
       procedure CloseDelivery(aID: Integer);
       procedure CloseDemand(aID: Integer);
       procedure CloseOffer(aID: Integer);
  
positive.code:   Result := True;
    if aSerf = nil then Exit;
  
    BelowOfferPos := KMPointBelow(aOfferPos);
  
    {$IFDEF WDC}
    if CACHE_DELIVERY_BIDS then
    begin
  
negative.code: var
    LocA, LocB: TKMPoint;
  begin
    LocA := GetSerfActualPos(aSerf);
    LocB := fOffer[iO].Loc_House.PointBelowEntrance;
  
    Result := aSerf.CanWalkTo(LocA, LocB, tpWalk, 0);
  end;
  
  
  function TKMDeliveries.PermitDelivery(iO,iD: Integer; aSerf: TKMUnitSerf): Boolean;
  begin
    Result := ValidDelivery(iO, iD) and SerfCanDoDelivery(iO, iD, aSerf);
  end;
  
  
  function TKMDeliveries.GetSerfActualPos(aSerf: TKMUnit): TKMPoint;
  begin
    Result := aSerf.GetPosition;
  
    //If the serf is inside the house (invisible) test from point below
    if not aSerf.Visible then
      Result := KMPointBelow(Result);
  end;
  
  
  