diff --git a/.waf-tools/default-compiler-flags.py b/.waf-tools/default-compiler-flags.py
index 0d21318..abe0a25 100644
--- a/.waf-tools/default-compiler-flags.py
+++ b/.waf-tools/default-compiler-flags.py
@@ -126,16 +126,12 @@
     def getGeneralFlags(self, conf):
         flags = super(GccFlags, self).getGeneralFlags(conf)
         version = tuple(int(i) for i in conf.env['CC_VERSION'])
-        if version < (4, 6, 0):
+        if version < (4, 8, 2):
             conf.fatal('The version of gcc you are using (%s) is too old.\n' %
                        '.'.join(conf.env['CC_VERSION']) +
-                       'The minimum supported gcc version is 4.6.0.')
-        elif version < (4, 7, 0):
-            flags['CXXFLAGS'] += ['-std=c++0x']
+                       'The minimum supported gcc version is 4.8.2.')
         else:
             flags['CXXFLAGS'] += ['-std=c++11']
-        if version < (4, 8, 0):
-            flags['DEFINES'] += ['_GLIBCXX_USE_NANOSLEEP'] # Bug #2499
         return flags
 
     def getDebugFlags(self, conf):
diff --git a/docs/INSTALL.rst b/docs/INSTALL.rst
index 09e3e27..aa4a068 100644
--- a/docs/INSTALL.rst
+++ b/docs/INSTALL.rst
@@ -35,7 +35,7 @@
 -  ``libsqlite3``
 -  ``libcrypto++``
 -  ``pkg-config``
--  Boost libraries >= 1.48
+-  Boost libraries >= 1.54
 -  OSX Security framework (on OSX platform only)
 
 Following are the detailed steps for each platform to install the compiler, all necessary
diff --git a/docs/code-style.rst b/docs/code-style.rst
index f3a1c63..c57fd0a 100644
--- a/docs/code-style.rst
+++ b/docs/code-style.rst
@@ -440,7 +440,7 @@
         class Class
         {
         private:
-          T m_member = {arg1, arg2}; // not supported by GCC 4.6
+          T m_member = {arg1, arg2};
           static T s_member = {arg1, arg2};
         };
 
diff --git a/docs/examples.rst b/docs/examples.rst
index a609ad6..b107aa7 100644
--- a/docs/examples.rst
+++ b/docs/examples.rst
@@ -52,7 +52,7 @@
 events for execution at specific points of time.
 
 The library internally uses `boost::asio::io_service
-<http://www.boost.org/doc/libs/1_48_0/doc/html/boost_asio/reference/io_service.html>`_ to
+<http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/reference/io_service.html>`_ to
 implement fully asynchronous NDN operations (i.e., sending and receiving Interests and
 Data).  In addition to network-related operations, ``boost::asio::io_service`` can be used
 to execute any arbitrary callback within the processing thread (run either explicitly via
diff --git a/src/util/time.hpp b/src/util/time.hpp
index e0f64c5..976a27b 100644
--- a/src/util/time.hpp
+++ b/src/util/time.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2016 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -186,7 +186,7 @@
  * \param format desired output format (default: `%Y-%m-%d %H:%M:%S`)
  * \param locale desired locale (default: "C" locale)
  *
- * \sa http://www.boost.org/doc/libs/1_48_0/doc/html/date_time/date_time_io.html#date_time.format_flags
+ * \sa http://www.boost.org/doc/libs/1_54_0/doc/html/date_time/date_time_io.html#date_time.format_flags
  *     described possible formatting flags
  **/
 std::string
@@ -204,7 +204,7 @@
  * \param format    input output format (default: `%Y-%m-%d %H:%M:%S`)
  * \param locale    input locale (default: "C" locale)
  *
- * \sa http://www.boost.org/doc/libs/1_48_0/doc/html/date_time/date_time_io.html#date_time.format_flags
+ * \sa http://www.boost.org/doc/libs/1_54_0/doc/html/date_time/date_time_io.html#date_time.format_flags
  *     described possible formatting flags
  */
 system_clock::TimePoint
diff --git a/wscript b/wscript
index cbf66ca..ba82eed 100644
--- a/wscript
+++ b/wscript
@@ -106,8 +106,8 @@
         conf.define('HAVE_TESTS', 1)
 
     conf.check_boost(lib=USED_BOOST_LIBS, mandatory=True)
-    if conf.env.BOOST_VERSION_NUMBER < 104800:
-        Logs.error("Minimum required boost version is 1.48.0")
+    if conf.env.BOOST_VERSION_NUMBER < 105400:
+        Logs.error("Minimum required boost version is 1.54.0")
         Logs.error("Please upgrade your distribution or install custom boost libraries" +
                     " (http://redmine.named-data.net/projects/nfd/wiki/Boost_FAQ)")
         return
