diff --git a/asio/boostify.pl b/asio/boostify.pl
index 144b1ca..e4b6dd0 100755
--- a/asio/boostify.pl
+++ b/asio/boostify.pl
@@ -121,6 +121,10 @@
     {
       $line =~ s/asio_detail_posix_thread_function/boost_asio_detail_posix_thread_function/g;
     }
+    if ($line =~ /const ASIO_ERROR_CATEGORY_NOEXCEPT$/)
+    {
+      $line =~ s/ ASIO_ERROR_CATEGORY_NOEXCEPT$//;
+    }
     if ($line =~ /ASIO_/ && !($line =~ /BOOST_ASIO_/))
     {
       $line =~ s/ASIO_/BOOST_ASIO_/g;
diff --git a/asio/include/asio/detail/config.hpp b/asio/include/asio/detail/config.hpp
index 86e110d..6282934 100644
--- a/asio/include/asio/detail/config.hpp
+++ b/asio/include/asio/detail/config.hpp
@@ -112,6 +112,20 @@
 # endif // defined(__GNUC__)
 #endif // !defined(ASIO_DISABLE_STD_SYSTEM_ERROR)
 
+// Compliant C++11 compilers put noexcept specifiers on error_category members.
+#if !defined(ASIO_ERROR_CATEGORY_NOEXCEPT)
+# if defined(__GNUC__)
+#  if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
+#   if defined(__GXX_EXPERIMENTAL_CXX0X__)
+#     define ASIO_ERROR_CATEGORY_NOEXCEPT noexcept(true)
+#   endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
+#  endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
+# endif // defined(__GNUC__)
+# if !defined(ASIO_ERROR_CATEGORY_NOEXCEPT)
+#  define ASIO_ERROR_CATEGORY_NOEXCEPT
+# endif // !defined(ASIO_ERROR_CATEGORY_NOEXCEPT)
+#endif // !defined(ASIO_ERROR_CATEGORY_NOEXCEPT)
+
 // Standard library support for arrays.
 #if !defined(ASIO_DISABLE_STD_ARRAY)
 # if defined(__GNUC__)
@@ -163,7 +177,9 @@
 #  if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
 #   if defined(__GXX_EXPERIMENTAL_CXX0X__)
 #    define ASIO_HAS_STD_CHRONO
-#    define ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK
+#    if ((__GNUC__ == 4) && (__GNUC_MINOR__ == 6))
+#     define ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK
+#    endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ == 6))
 #   endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
 #  endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
 # endif // defined(__GNUC__)
diff --git a/asio/include/asio/impl/error.ipp b/asio/include/asio/impl/error.ipp
index 836b200..7448813 100644
--- a/asio/include/asio/impl/error.ipp
+++ b/asio/include/asio/impl/error.ipp
@@ -30,7 +30,7 @@
 class netdb_category : public asio::error_category
 {
 public:
-  const char* name() const
+  const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT
   {
     return "asio.netdb";
   }
@@ -62,7 +62,7 @@
 class addrinfo_category : public asio::error_category
 {
 public:
-  const char* name() const
+  const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT
   {
     return "asio.addrinfo";
   }
@@ -92,7 +92,7 @@
 class misc_category : public asio::error_category
 {
 public:
-  const char* name() const
+  const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT
   {
     return "asio.misc";
   }
diff --git a/asio/include/asio/impl/error_code.ipp b/asio/include/asio/impl/error_code.ipp
index e9e326c..a9db6fa 100644
--- a/asio/include/asio/impl/error_code.ipp
+++ b/asio/include/asio/impl/error_code.ipp
@@ -34,7 +34,7 @@
 class system_category : public error_category
 {
 public:
-  const char* name() const
+  const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT
   {
     return "asio.system";
   }
diff --git a/asio/include/asio/ssl/impl/error.ipp b/asio/include/asio/ssl/impl/error.ipp
index a9fd2c4..a092241 100644
--- a/asio/include/asio/ssl/impl/error.ipp
+++ b/asio/include/asio/ssl/impl/error.ipp
@@ -29,7 +29,7 @@
 class ssl_category : public asio::error_category
 {
 public:
-  const char* name() const
+  const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT
   {
     return "asio.ssl";
   }
diff --git a/asio/src/doc/history.qbk b/asio/src/doc/history.qbk
index 8a3773f..9066d31 100644
--- a/asio/src/doc/history.qbk
+++ b/asio/src/doc/history.qbk
@@ -23,6 +23,8 @@
 
 * Improved the performance of strand rescheduling.
 
+* Added support for [^g++] 4.7 when compiling in C++11 mode.
+
 [heading Asio 1.8.0]
 
 * Added a new class template `basic_waitable_timer` based around the C++11 clock
