diff --git a/include/ndnboost/detail/container_fwd.hpp b/include/ndnboost/detail/container_fwd.hpp
index 0254e7b..7081f07 100644
--- a/include/ndnboost/detail/container_fwd.hpp
+++ b/include/ndnboost/detail/container_fwd.hpp
@@ -5,11 +5,11 @@
 
 // Note: if you change this include guard, you also need to change
 // container_fwd_compile_fail.cpp
-#if !defined(BOOST_DETAIL_CONTAINER_FWD_HPP)
-#define BOOST_DETAIL_CONTAINER_FWD_HPP
+#if !defined(NDNBOOST_DETAIL_CONTAINER_FWD_HPP)
+#define NDNBOOST_DETAIL_CONTAINER_FWD_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020) && \
-    !defined(BOOST_DETAIL_TEST_CONFIG_ONLY)
+    !defined(NDNBOOST_DETAIL_TEST_CONFIG_ONLY)
 # pragma once
 #endif
 
@@ -18,31 +18,31 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 //                                                                            //
-// Define BOOST_DETAIL_NO_CONTAINER_FWD if you don't want this header to      //
+// Define NDNBOOST_DETAIL_NO_CONTAINER_FWD if you don't want this header to      //
 // forward declare standard containers.                                       //
 //                                                                            //
-// BOOST_DETAIL_CONTAINER_FWD to make it foward declare containers even if it //
+// NDNBOOST_DETAIL_CONTAINER_FWD to make it foward declare containers even if it //
 // normally doesn't.                                                          //
 //                                                                            //
-// BOOST_DETAIL_NO_CONTAINER_FWD overrides BOOST_DETAIL_CONTAINER_FWD.        //
+// NDNBOOST_DETAIL_NO_CONTAINER_FWD overrides NDNBOOST_DETAIL_CONTAINER_FWD.        //
 //                                                                            //
 ////////////////////////////////////////////////////////////////////////////////
 
-#if !defined(BOOST_DETAIL_NO_CONTAINER_FWD)
-#  if defined(BOOST_DETAIL_CONTAINER_FWD)
+#if !defined(NDNBOOST_DETAIL_NO_CONTAINER_FWD)
+#  if defined(NDNBOOST_DETAIL_CONTAINER_FWD)
      // Force forward declarations.
 #  elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
      // STLport
-#    define BOOST_DETAIL_NO_CONTAINER_FWD
+#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #  elif defined(__LIBCOMO__)
      // Comeau STL:
-#    define BOOST_DETAIL_NO_CONTAINER_FWD
+#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #  elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
      // Rogue Wave library:
-#    define BOOST_DETAIL_NO_CONTAINER_FWD
+#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #  elif defined(_LIBCPP_VERSION)
      // libc++
-#    define BOOST_DETAIL_NO_CONTAINER_FWD
+#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #  elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
      // GNU libstdc++ 3
      //
@@ -52,10 +52,10 @@
         || defined(_GLIBCXX_DEBUG) \
         || defined(_GLIBCXX_PARALLEL) \
         || defined(_GLIBCXX_PROFILE)
-#      define BOOST_DETAIL_NO_CONTAINER_FWD
+#      define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #    else
 #      if defined(__GLIBCXX__) && __GLIBCXX__ >= 20040530
-#        define BOOST_CONTAINER_FWD_COMPLEX_STRUCT
+#        define NDNBOOST_CONTAINER_FWD_COMPLEX_STRUCT
 #      endif
 #    endif
 #  elif defined(__STL_CONFIG_H)
@@ -63,30 +63,30 @@
      //
      // Forward declaration seems to be okay, but it has a couple of odd
      // implementations.
-#    define BOOST_CONTAINER_FWD_BAD_BITSET
+#    define NDNBOOST_CONTAINER_FWD_BAD_BITSET
 #    if !defined(__STL_NON_TYPE_TMPL_PARAM_BUG)
-#      define BOOST_CONTAINER_FWD_BAD_DEQUE
+#      define NDNBOOST_CONTAINER_FWD_BAD_DEQUE
 #     endif
 #  elif defined(__MSL_CPP__)
      // MSL standard lib:
-#    define BOOST_DETAIL_NO_CONTAINER_FWD
+#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #  elif defined(__IBMCPP__)
      // The default VACPP std lib, forward declaration seems to be fine.
 #  elif defined(MSIPL_COMPILE_H)
      // Modena C++ standard library
-#    define BOOST_DETAIL_NO_CONTAINER_FWD
+#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #  elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
      // Dinkumware Library (this has to appear after any possible replacement
      // libraries)
 #  else
-#    define BOOST_DETAIL_NO_CONTAINER_FWD
+#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
 #  endif
 #endif
 
-#if !defined(BOOST_DETAIL_TEST_CONFIG_ONLY)
+#if !defined(NDNBOOST_DETAIL_TEST_CONFIG_ONLY)
 
-#if defined(BOOST_DETAIL_NO_CONTAINER_FWD) && \
-    !defined(BOOST_DETAIL_TEST_FORCE_CONTAINER_FWD)
+#if defined(NDNBOOST_DETAIL_NO_CONTAINER_FWD) && \
+    !defined(NDNBOOST_DETAIL_TEST_FORCE_CONTAINER_FWD)
 
 #include <deque>
 #include <list>
@@ -101,15 +101,15 @@
 
 #include <cstddef>
 
-#if defined(BOOST_CONTAINER_FWD_BAD_DEQUE)
+#if defined(NDNBOOST_CONTAINER_FWD_BAD_DEQUE)
 #include <deque>
 #endif
 
-#if defined(BOOST_CONTAINER_FWD_BAD_BITSET)
+#if defined(NDNBOOST_CONTAINER_FWD_BAD_BITSET)
 #include <bitset>
 #endif
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #pragma warning(push)
 #pragma warning(disable:4099) // struct/class mismatch in fwd declarations
 #endif
@@ -119,20 +119,20 @@
     template <class T> class allocator;
     template <class charT, class traits, class Allocator> class basic_string;
 
-#if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
+#if NDNBOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
 
     template <class charT> struct string_char_traits;
 #else
     template <class charT> struct char_traits;
 #endif
 
-#if defined(BOOST_CONTAINER_FWD_COMPLEX_STRUCT)
+#if defined(NDNBOOST_CONTAINER_FWD_COMPLEX_STRUCT)
     template <class T> struct complex;
 #else
     template <class T> class complex;
 #endif
 
-#if !defined(BOOST_CONTAINER_FWD_BAD_DEQUE)
+#if !defined(NDNBOOST_CONTAINER_FWD_BAD_DEQUE)
     template <class T, class Allocator> class deque;
 #endif
 
@@ -144,19 +144,19 @@
     template <class Key, class Compare, class Allocator> class set;
     template <class Key, class Compare, class Allocator> class multiset;
 
-#if !defined(BOOST_CONTAINER_FWD_BAD_BITSET)
+#if !defined(NDNBOOST_CONTAINER_FWD_BAD_BITSET)
     template <size_t N> class bitset;
 #endif
     template <class T1, class T2> struct pair;
 }
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 #pragma warning(pop)
 #endif
 
-#endif // BOOST_DETAIL_NO_CONTAINER_FWD &&
-       // !defined(BOOST_DETAIL_TEST_FORCE_CONTAINER_FWD)
+#endif // NDNBOOST_DETAIL_NO_CONTAINER_FWD &&
+       // !defined(NDNBOOST_DETAIL_TEST_FORCE_CONTAINER_FWD)
 
-#endif // BOOST_DETAIL_TEST_CONFIG_ONLY
+#endif // NDNBOOST_DETAIL_TEST_CONFIG_ONLY
 
 #endif
