diff --git a/include/ndnboost/test/framework.hpp b/include/ndnboost/test/framework.hpp
index 43d249d..3f316f8 100644
--- a/include/ndnboost/test/framework.hpp
+++ b/include/ndnboost/test/framework.hpp
@@ -12,8 +12,8 @@
 //  Description : defines framework interface
 // ***************************************************************************
 
-#ifndef BOOST_TEST_FRAMEWORK_HPP_020805GER
-#define BOOST_TEST_FRAMEWORK_HPP_020805GER
+#ifndef NDNBOOST_TEST_FRAMEWORK_HPP_020805GER
+#define NDNBOOST_TEST_FRAMEWORK_HPP_020805GER
 
 // Boost.Test
 #include <ndnboost/test/detail/global_typedef.hpp>
@@ -35,7 +35,7 @@
 // **************              init_unit_test_func             ************** //
 // ************************************************************************** //
 
-#ifdef BOOST_TEST_ALTERNATIVE_INIT_API
+#ifdef NDNBOOST_TEST_ALTERNATIVE_INIT_API
 typedef bool        (*init_unit_test_func)();
 #else
 typedef test_suite* (*init_unit_test_func)( int, char* [] );
@@ -48,25 +48,25 @@
 namespace framework {
 
 // initialization
-BOOST_TEST_DECL void    init( init_unit_test_func init_func, int argc, char* argv[] );
-BOOST_TEST_DECL bool    is_initialized();
+NDNBOOST_TEST_DECL void    init( init_unit_test_func init_func, int argc, char* argv[] );
+NDNBOOST_TEST_DECL bool    is_initialized();
 
 // mutation access methods
-BOOST_TEST_DECL void    register_test_unit( test_case* tc );
-BOOST_TEST_DECL void    register_test_unit( test_suite* ts );
-BOOST_TEST_DECL void    deregister_test_unit( test_unit* tu );
-BOOST_TEST_DECL void    clear();
+NDNBOOST_TEST_DECL void    register_test_unit( test_case* tc );
+NDNBOOST_TEST_DECL void    register_test_unit( test_suite* ts );
+NDNBOOST_TEST_DECL void    deregister_test_unit( test_unit* tu );
+NDNBOOST_TEST_DECL void    clear();
 
-BOOST_TEST_DECL void    register_observer( test_observer& );
-BOOST_TEST_DECL void    deregister_observer( test_observer& );
-BOOST_TEST_DECL void    reset_observers();
+NDNBOOST_TEST_DECL void    register_observer( test_observer& );
+NDNBOOST_TEST_DECL void    deregister_observer( test_observer& );
+NDNBOOST_TEST_DECL void    reset_observers();
 
-BOOST_TEST_DECL master_test_suite_t& master_test_suite();
+NDNBOOST_TEST_DECL master_test_suite_t& master_test_suite();
 
 // constant access methods
-BOOST_TEST_DECL test_case const&    current_test_case();
+NDNBOOST_TEST_DECL test_case const&    current_test_case();
 
-BOOST_TEST_DECL test_unit&  get( test_unit_id, test_unit_type );
+NDNBOOST_TEST_DECL test_unit&  get( test_unit_id, test_unit_type );
 template<typename UnitType>
 UnitType&               get( test_unit_id id )
 {
@@ -74,13 +74,13 @@
 }
 
 // test initiation
-BOOST_TEST_DECL void    run( test_unit_id = INV_TEST_UNIT_ID, bool continue_test = true );
-BOOST_TEST_DECL void    run( test_unit const*, bool continue_test = true );
+NDNBOOST_TEST_DECL void    run( test_unit_id = INV_TEST_UNIT_ID, bool continue_test = true );
+NDNBOOST_TEST_DECL void    run( test_unit const*, bool continue_test = true );
 
 // public test events dispatchers
-BOOST_TEST_DECL void    assertion_result( bool passed );
-BOOST_TEST_DECL void    exception_caught( execution_exception const& );
-BOOST_TEST_DECL void    test_unit_aborted( test_unit const& );
+NDNBOOST_TEST_DECL void    assertion_result( bool passed );
+NDNBOOST_TEST_DECL void    exception_caught( execution_exception const& );
+NDNBOOST_TEST_DECL void    test_unit_aborted( test_unit const& );
 
 // ************************************************************************** //
 // **************                framework errors              ************** //
@@ -94,7 +94,7 @@
     setup_error( const_string m ) : std::runtime_error( std::string( m.begin(), m.size() ) ) {}
 };
 
-#define BOOST_TEST_SETUP_ASSERT( cond, msg ) if( cond ) {} else throw unit_test::framework::setup_error( msg )
+#define NDNBOOST_TEST_SETUP_ASSERT( cond, msg ) if( cond ) {} else throw unit_test::framework::setup_error( msg )
 
 struct nothing_to_test {}; // not really an error
 
@@ -108,5 +108,5 @@
 
 #include <ndnboost/test/detail/enable_warnings.hpp>
 
-#endif // BOOST_TEST_FRAMEWORK_HPP_020805GER
+#endif // NDNBOOST_TEST_FRAMEWORK_HPP_020805GER
 
