diff --git a/helper/ndn-stack-helper.cc b/helper/ndn-stack-helper.cc
index 04ceb46..3f284cf 100644
--- a/helper/ndn-stack-helper.cc
+++ b/helper/ndn-stack-helper.cc
@@ -255,19 +255,16 @@
           if (device->GetInstanceTypeId () == item->first ||
               device->GetInstanceTypeId ().IsChildOf (item->first))
             {
-              face = item->second (node, device);
+              face = item->second (node, ndn, device);
               if (face != 0)
                 break;
             }
         }
       if (face == 0)
         {
-          face = DefaultNetDeviceCallback (node, device);
+          face = DefaultNetDeviceCallback (node, ndn, device);
         }
 
-      ndn->AddFace (face);
-      NS_LOG_LOGIC ("Node " << node->GetId () << ": added NetDeviceFace as face #" << *face);
-
       if (m_needSetDefaultRoutes)
         {
           // default route with lowest priority possible
@@ -289,20 +286,28 @@
 
 
 Ptr<NetDeviceFace>
-StackHelper::DefaultNetDeviceCallback (Ptr<Node> node, Ptr<NetDevice> netDevice) const
+StackHelper::DefaultNetDeviceCallback (Ptr<Node> node, Ptr<L3Protocol> ndn, Ptr<NetDevice> netDevice) const
 {
   NS_LOG_DEBUG ("Creating default NetDeviceFace on node " << node->GetId ());
 
-  return CreateObject<NetDeviceFace> (node, netDevice);
+  Ptr<NetDeviceFace> face = CreateObject<NetDeviceFace> (node, netDevice);
+
+  ndn->AddFace (face);
+  NS_LOG_LOGIC ("Node " << node->GetId () << ": added NetDeviceFace as face #" << *face);
+
+  return face;
 }
 
 Ptr<NetDeviceFace>
-StackHelper::PointToPointNetDeviceCallback (Ptr<Node> node, Ptr<NetDevice> device) const
+StackHelper::PointToPointNetDeviceCallback (Ptr<Node> node, Ptr<L3Protocol> ndn, Ptr<NetDevice> device) const
 {
   NS_LOG_DEBUG ("Creating point-to-point NetDeviceFace on node " << node->GetId ());
 
   Ptr<NetDeviceFace> face = CreateObject<NetDeviceFace> (node, device);
 
+  ndn->AddFace (face);
+  NS_LOG_LOGIC ("Node " << node->GetId () << ": added NetDeviceFace as face #" << *face);
+
   if (m_limitsEnabled)
     {
       Ptr<Limits> limits = face->GetObject<Limits> ();
diff --git a/helper/ndn-stack-helper.h b/helper/ndn-stack-helper.h
index 25764d9..4b26040 100644
--- a/helper/ndn-stack-helper.h
+++ b/helper/ndn-stack-helper.h
@@ -35,6 +35,8 @@
 
 class FaceContainer;
 class Face;
+class NetDeviceFace;
+class L3Protocol;
 
 /**
  * \ingroup ndn
@@ -128,7 +130,7 @@
           const std::string &attr3 = "", const std::string &value3 = "",
           const std::string &attr4 = "", const std::string &value4 = "");
 
-  typedef Callback< Ptr<NetDeviceFace>, Ptr<Node>, Ptr<NetDevice> > NetDeviceFaceCreateCallback;
+  typedef Callback< Ptr<NetDeviceFace>, Ptr<Node>, Ptr<L3Protocol>, Ptr<NetDevice> > NetDeviceFaceCreateCallback;
 
   /**
    * @brief Add callback to create and configure instance of the face, based on supplied Ptr<Node> and Ptr<NetDevice>
@@ -269,10 +271,10 @@
 
 private:
   Ptr<NetDeviceFace>
-  DefaultNetDeviceCallback (Ptr<Node> node, Ptr<NetDevice> netDevice) const;
+  DefaultNetDeviceCallback (Ptr<Node> node, Ptr<L3Protocol> ndn, Ptr<NetDevice> netDevice) const;
 
   Ptr<NetDeviceFace>
-  PointToPointNetDeviceCallback (Ptr<Node> node, Ptr<NetDevice> netDevice) const;
+  PointToPointNetDeviceCallback (Ptr<Node> node, Ptr<L3Protocol> ndn, Ptr<NetDevice> netDevice) const;
 
 private:
   StackHelper (const StackHelper &);
