anchor.diff:  procedure TKMDeliveries.DeliveryFindBestDemand(aSerf: TKMUnitSerf; aDeliveryId: Integer; aResource: TKMWareType;
                                                  out aToHouse: TKMHouse; out aToUnit: TKMUnit; out aForceDelivery: Boolean);
   
  -  function ValidBestDemand(iD: Integer): Boolean;
  +  function ValidBestDemand(iD, iOldID: Integer): Boolean;
     var
       I: Integer;
       H: TKMHouse;
  
positive.code:               ((fDemand[iD].Ware = wtFood) and (aResource in [wtBread, wtSausages, wtWine, wtFish]));
  
      //Check if unit is alive
      Result := Result and ((fDemand[iD].Loc_Unit = nil) or not fDemand[iD].Loc_Unit.IsDeadOrDying);
  
      //If Demand house should abandon delivery
      Result := Result and ((fDemand[iD].Loc_House = nil)
                            or not fDemand[iD].Loc_House.IsComplete
                            or not fDemand[iD].Loc_House.ShouldAbandonDeliveryTo(aResource));
  
      //If Demand aren't reserved already
      Result := Result and ((fDemand[iD].DemandType = dtAlways) or (fDemand[iD].BeingPerformed = 0));
  
negative.code:       if (fDemand[iD].Ware <> wtNone)
          and (iD <> OldDemandId)
          and (fDemand[iD].Importance >= BestImportance)
          and ValidBestDemand(iD, OldDemandId)
          and TryCalculateBidBasic(aSerf.UID, aSerf.CurrPosition, 1, htNone, aSerf.Owner, iD, Bid, nil,
                                   DeliverToUnit or fQueue[aDeliveryId].IsFromUnit)
          and ((Bid < BestBid) or (fDemand[iD].Importance > BestImportance)) then //Calc bid to find the best demand
  