diff --git a/daemon/table/network-region-table.cpp b/daemon/table/network-region-table.cpp
index df6ca58..828a35b 100644
--- a/daemon/table/network-region-table.cpp
+++ b/daemon/table/network-region-table.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2015,  Regents of the University of California,
+/*
+ * Copyright (c) 2014-2017,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -29,11 +29,11 @@
 namespace nfd {
 
 bool
-NetworkRegionTable::isInProducerRegion(const Link& link) const
+NetworkRegionTable::isInProducerRegion(const DelegationList& forwardingHint) const
 {
   for (const Name& regionName : *this) {
-    for (const Name& delegationName : boost::adaptors::values(link.getDelegations())) {
-      if (delegationName.isPrefixOf(regionName)) {
+    for (const Delegation& delegation : forwardingHint) {
+      if (delegation.name.isPrefixOf(regionName)) {
         return true;
       }
     }
diff --git a/daemon/table/network-region-table.hpp b/daemon/table/network-region-table.hpp
index 663d2f5..22da902 100644
--- a/daemon/table/network-region-table.hpp
+++ b/daemon/table/network-region-table.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2016,  Regents of the University of California,
+/*
+ * Copyright (c) 2014-2017,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -41,16 +41,16 @@
 {
 public:
   /** \brief determines whether an Interest has reached a producer region
-   *  \param link the Link object on an Interest
+   *  \param forwardingHint forwarding hint of an Interest
    *  \retval true the Interest has reached a producer region
    *  \retval false the Interest has not reached a producer region
    *
-   *  If any delegation names in the Link object is a prefix of any region name,
+   *  If any delegation name in the forwarding hint is a prefix of any region name,
    *  the Interest has reached the producer region and should be forwarded according to ‎its Name;
-   *  otherwise, the Interest should be forwarded according to the delegations.
+   *  otherwise, the Interest should be forwarded according to the forwarding hint.
    */
   bool
-  isInProducerRegion(const Link& link) const;
+  isInProducerRegion(const DelegationList& forwardingHint) const;
 };
 
 } // namespace nfd
