diff --git a/tests/core/segment-publisher.cpp b/tests/core/segment-publisher.cpp
index 7a9ee1d..be28aba 100644
--- a/tests/core/segment-publisher.cpp
+++ b/tests/core/segment-publisher.cpp
@@ -73,7 +73,7 @@
     size_t totalLength = 0;
     for (int64_t i = 0; i < N; i++)
       {
-        totalLength += prependNonNegativeIntegerBlock(outBuffer, tlv::Content, i);
+        totalLength += ndn::prependNonNegativeIntegerBlock(outBuffer, tlv::Content, i);
       }
     m_totalPayloadLength += totalLength;
     return totalLength;
diff --git a/tests/core/simple-notification.hpp b/tests/core/simple-notification.hpp
index 3c8fdef..64057e3 100644
--- a/tests/core/simple-notification.hpp
+++ b/tests/core/simple-notification.hpp
@@ -1,12 +1,12 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014,  Regents of the University of California,
- *                      Arizona Board of Regents,
- *                      Colorado State University,
- *                      University Pierre & Marie Curie, Sorbonne University,
- *                      Washington University in St. Louis,
- *                      Beijing Institute of Technology,
- *                      The University of Memphis
+ * Copyright (c) 2014-2015,  Regents of the University of California,
+ *                           Arizona Board of Regents,
+ *                           Colorado State University,
+ *                           University Pierre & Marie Curie, Sorbonne University,
+ *                           Washington University in St. Louis,
+ *                           Beijing Institute of Technology,
+ *                           The University of Memphis.
  *
  * This file is part of NFD (Named Data Networking Forwarding Daemon).
  * See AUTHORS.md for complete list of NFD authors and contributors.
@@ -53,10 +53,10 @@
   wireEncode() const
   {
     ndn::EncodingBuffer buffer;
-    prependByteArrayBlock(buffer,
-                          0x8888,
-                          reinterpret_cast<const uint8_t*>(m_message.c_str()),
-                          m_message.size());
+    ndn::prependByteArrayBlock(buffer,
+                               0x8888,
+                               reinterpret_cast<const uint8_t*>(m_message.c_str()),
+                               m_message.size());
     return buffer.block();
   }
 
