diff --git a/src/common.hpp b/src/common.hpp
index b6de7b9..f8f4255 100644
--- a/src/common.hpp
+++ b/src/common.hpp
@@ -1,14 +1,13 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * Copyright (C) 2013-2014 Regents of the University of California.
  * See COPYING for copyright and distribution information.
  */
 
 #ifndef NDN_COMMON_HPP
 #define NDN_COMMON_HPP
 
-#include "ndn-cpp-config.hpp"
+#include "ndn-cxx-config.hpp"
 #include <stdint.h>
 // TODO: Is stddef.h portable?
 #include <stddef.h>
@@ -45,16 +44,16 @@
 #define DEPRECATED(func) func
 #endif
 
-#ifdef NDN_CPP_HAVE_CXX11
+#ifdef NDN_CXX_HAVE_CXX11
 
 #if defined(__GNUC__)
 #  if !defined(__GXX_EXPERIMENTAL_CXX0X__) && __cplusplus < 201103L
-#    error "NDN-CPP-DEV library is configured and compiled in C++11 mode, but the current compiler is not C++11 enabled"
+#    error "NDN-CXX library is configured and compiled in C++11 mode, but the current compiler is not C++11 enabled"
 #  endif // !defined(__GXX_EXPERIMENTAL_CXX0X__) && __cplusplus < 201103L
 #endif // defined(__GNUC__)
 
 #if defined(__clang__) && __cplusplus < 201103L
-#  error "NDN-CPP-DEV library is configured and compiled in C++11 mode, but the current compiler is not C++11 enabled"
+#  error "NDN-CXX library is configured and compiled in C++11 mode, but the current compiler is not C++11 enabled"
 #endif // defined(__clang__) && (__cplusplus < 201103L)
 
 
@@ -111,7 +110,7 @@
 
 } // namespace ndn
 
-#endif // NDN_CPP_HAVE_CXX11
+#endif // NDN_CXX_HAVE_CXX11
 
 namespace ndn {
 
diff --git a/src/security/key-chain.hpp b/src/security/key-chain.hpp
index 5143a4a..40ffd3c 100644
--- a/src/security/key-chain.hpp
+++ b/src/security/key-chain.hpp
@@ -25,7 +25,7 @@
 #include "sec-tpm-file.hpp"
 #include "sec-tpm-memory.hpp"
 
-#ifdef NDN_CPP_HAVE_OSX_SECURITY
+#ifdef NDN_CXX_HAVE_OSX_SECURITY
 #include "sec-tpm-osx.hpp"
 #endif
 
@@ -662,7 +662,7 @@
 
 
 
-#if defined(NDN_CPP_HAVE_OSX_SECURITY) and defined(NDN_CPP_WITH_OSX_KEYCHAIN)
+#if defined(NDN_CXX_HAVE_OSX_SECURITY) and defined(NDN_CXX_WITH_OSX_KEYCHAIN)
 
 namespace ndn {
 
@@ -678,6 +678,6 @@
 
 } // namespace ndn
 
-#endif //NDN_CPP_HAVE_OSX_SECURITY
+#endif // NDN_CXX_HAVE_OSX_SECURITY
 
-#endif //NDN_SECURITY_KEY_CHAIN_HPP
+#endif // NDN_SECURITY_KEY_CHAIN_HPP
diff --git a/src/security/sec-public-info-sqlite3.cpp b/src/security/sec-public-info-sqlite3.cpp
index 4df238c..04938b4 100644
--- a/src/security/sec-public-info-sqlite3.cpp
+++ b/src/security/sec-public-info-sqlite3.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
- * Copyright (C) 2013 Regents of the University of California.
+ * Copyright (c) 2013-2014 Regents of the University of California.
  * @author: Yingdi Yu <yingdi@cs.ucla.edu>
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
  * See COPYING for copyright and distribution information.
@@ -92,7 +92,7 @@
   /// @todo Add define for windows/unix in wscript. The following may completely fail on windows
   int res = sqlite3_open_v2((identityDir / "ndnsec-public-info.db").c_str(), &m_database,
                             SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE,
-#ifdef NDN_CPP_DISABLE_SQLITE3_FS_LOCKING
+#ifdef NDN_CXX_DISABLE_SQLITE3_FS_LOCKING
                                                        "unix-dotfile"
 #else
                             0
diff --git a/src/util/config-file.cpp b/src/util/config-file.cpp
index c80ddc6..ea56d12 100644
--- a/src/util/config-file.cpp
+++ b/src/util/config-file.cpp
@@ -45,15 +45,15 @@
         }
     }
 
-#ifdef NDN_CPP_SYSCONFDIR
-  path sysconfdir(NDN_CPP_SYSCONFDIR);
+#ifdef NDN_CXX_SYSCONFDIR
+  path sysconfdir(NDN_CXX_SYSCONFDIR);
   sysconfdir /= "ndn/client.conf";
 
   if (exists(sysconfdir))
     {
       return absolute(sysconfdir);
     }
-#endif // NDN_CPP_SYSCONFDIR
+#endif // NDN_CXX_SYSCONFDIR
 
   path etc("/etc/ndn/client.conf");
   if (exists(etc))
diff --git a/src/util/logging.cpp b/src/util/logging.cpp
index 0b969a0..113e3a9 100644
--- a/src/util/logging.cpp
+++ b/src/util/logging.cpp
@@ -10,7 +10,7 @@
 
 #include "logging.hpp"
 
-#ifdef NDN_CPP_HAVE_LOG4CXX
+#ifdef NDN_CXX_HAVE_LOG4CXX
 
 #include <log4cxx/logger.h>
 #include <log4cxx/basicconfigurator.h>
@@ -46,4 +46,4 @@
   configured = true;
 }
 
-#endif
+#endif // NDN_CXX_HAVE_LOG4CXX
diff --git a/src/util/logging.hpp b/src/util/logging.hpp
index 9370af0..5ee958c 100644
--- a/src/util/logging.hpp
+++ b/src/util/logging.hpp
@@ -11,7 +11,7 @@
 
 #include "../common.hpp"
 
-#ifdef NDN_CPP_HAVE_LOG4CXX
+#ifdef NDN_CXX_HAVE_LOG4CXX
 
 #include <log4cxx/logger.h>
 
@@ -48,7 +48,7 @@
 void
 INIT_LOGGERS()
 
-#else // else NDN_CPP_HAVE_LOG4CXX
+#else // else NDN_CXX_HAVE_LOG4CXX
 
 #define INIT_LOGGER(name) struct LOGGING_DISABLED
 #define _LOG_FUNCTION(x)
@@ -67,12 +67,12 @@
 #include <iostream>
 
 #define _LOG_DEBUG(x) \
-  { std::clog << s.substr(0, s.size() - 1) << " " << x << std::endl; }
+  { std::clog << x << std::endl; }
 
 #else
 #define _LOG_DEBUG(x)
 #endif
 
-#endif // NDN_CPP_HAVE_LOG4CXX
+#endif // NDN_CXX_HAVE_LOG4CXX
 
 #endif
