diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index b368c0270450cac45bcda30096fe00afa3918b2c..2fcc943b8290d5ec7d63f6f85b5fc31489dc7a27 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2011-03-15  Benjamin Kosnik  <bkoz@redhat.com>
+
+	* include/std/thread: Revert.
+	* src/thread.cc: Same.
+	* config/abi/pre/gnu.ver: Same.
+
 2011-03-15  Doug Kwan  <dougkwan@google.com>
 
 	PR libstdc++/48123
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
index d59521096ec07fa41b72333831577dc0320ff41e..f1c503441b9e2925cc41af9dfd10fee0c42228e2 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -1255,11 +1255,6 @@ GLIBCXX_3.4.15 {
     _ZTSNSt13__future_base11_State_baseE;
     _ZTVNSt13__future_base11_State_baseE;
 
-    _ZNSt6thread10_Impl_baseD*;
-    _ZTINSt6thread10_Impl_baseE;
-    _ZTSNSt6thread10_Impl_baseE;
-    _ZTVNSt6thread10_Impl_baseE;
-
 } GLIBCXX_3.4.14;
 
 # Symbols in the support library (libsupc++) have their own tag.
diff --git a/libstdc++-v3/include/std/thread b/libstdc++-v3/include/std/thread
index e43c126cdceb908f25fd6046d5df171289c3b981..de58e8141001dd03bc455ba978129ed3e0a601d9 100644
--- a/libstdc++-v3/include/std/thread
+++ b/libstdc++-v3/include/std/thread
@@ -100,7 +100,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     {
       __shared_base_type	_M_this_ptr;
 
-      virtual ~_Impl_base();
+      inline virtual ~_Impl_base();
 
       virtual void _M_run() = 0;
     };
@@ -195,6 +195,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       }
   };
 
+  inline thread::_Impl_base::~_Impl_base() = default;
+
   inline void
   swap(thread& __x, thread& __y)
   { __x.swap(__y); }
diff --git a/libstdc++-v3/src/thread.cc b/libstdc++-v3/src/thread.cc
index 7c923a2661019a11cfa697874b9eafe67c985f08..c164e8a016108fcb14f07afbe714d0bfcea1674e 100644
--- a/libstdc++-v3/src/thread.cc
+++ b/libstdc++-v3/src/thread.cc
@@ -54,8 +54,6 @@ namespace std _GLIBCXX_VISIBILITY(default)
 
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
-  thread::_Impl_base::~_Impl_base() = default;
-
   void
   thread::join()
   {