        { _M_t.swap(__x._M_t); }
  
        // insert/erase
+diff -ur a/bits/stl_stack.h b/bits/stl_stack.h
+--- a/bits/stl_stack.h	2011-03-15 14:49:05.000000000 -0700
++++ b/bits/stl_stack.h	2011-05-02 23:36:36.000000000 -0700
+@@ -213,7 +213,7 @@
+ 
+ #ifdef __GXX_EXPERIMENTAL_CXX0X__
+       void
+-      swap(stack&& __s)
++      swap(stack& __s)
+       { c.swap(__s.c); }
+ #endif
+     };
 diff -ur a/bits/stl_tree.h b/bits/stl_tree.h
 --- a/bits/stl_tree.h	2011-03-15 14:49:05.000000000 -0700
 +++ b/bits/stl_tree.h	2011-03-29 10:33:39.000000000 -0700

       { this->_M_swap(__s); }
 
       // String operations:

 
 _GLIBCXX_END_NAMESPACE
 
diff -ur a/bits/shared_ptr.h b/bits/shared_ptr.h
--- a/bits/shared_ptr.h	2011-03-15 14:49:05.000000000 -0700
+++ b/bits/shared_ptr.h	2011-03-31 16:40:45.000000000 -0700
@@ -833,7 +833,7 @@
       { return _M_refcount._M_get_use_count(); }
 
       void
-      swap(__shared_ptr<_Tp, _Lp>&& __other) // never throws
+      swap(__shared_ptr<_Tp, _Lp>& __other) // never throws
       {
 	std::swap(_M_ptr, __other._M_ptr);
 	_M_refcount._M_swap(__other._M_refcount);
@@ -943,16 +943,6 @@
     swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>& __b)
     { __a.swap(__b); }
 
-  template<typename _Tp, _Lock_policy _Lp>
-    inline void
-    swap(__shared_ptr<_Tp, _Lp>&& __a, __shared_ptr<_Tp, _Lp>& __b)
-    { __a.swap(__b); }
-
-  template<typename _Tp, _Lock_policy _Lp>
-    inline void
-    swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>&& __b)
-    { __a.swap(__b); }
-
   // 2.2.3.9 shared_ptr casts
   /** @warning The seemingly equivalent
    *           <code>shared_ptr<_Tp, _Lp>(static_cast<_Tp*>(__r.get()))</code>
@@ -1372,16 +1362,6 @@
     swap(shared_ptr<_Tp>& __a, shared_ptr<_Tp>& __b)
     { __a.swap(__b); }
 
-  template<typename _Tp>
-    inline void
-    swap(shared_ptr<_Tp>&& __a, shared_ptr<_Tp>& __b)
-    { __a.swap(__b); }
-
-  template<typename _Tp>
-    inline void
-    swap(shared_ptr<_Tp>& __a, shared_ptr<_Tp>&& __b)
-    { __a.swap(__b); }
-
   // 20.8.13.2.10 shared_ptr casts.
   template<typename _Tp, typename _Tp1>
     inline shared_ptr<_Tp>
diff -ur a/bits/stl_bvector.h b/bits/stl_bvector.h
--- a/bits/stl_bvector.h	2011-03-15 14:49:05.000000000 -0700
+++ b/bits/stl_bvector.h	2011-05-02 23:34:46.000000000 -0700
@@ -743,11 +743,7 @@
     }
 
     void
-#ifdef __GXX_EXPERIMENTAL_CXX0X__
-    swap(vector&& __x)
-#else
     swap(vector& __x)
-#endif
     {
       std::swap(this->_M_impl._M_start, __x._M_impl._M_start);
       std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish);
diff -ur a/bits/stl_deque.h b/bits/stl_deque.h
--- a/bits/stl_deque.h	2011-03-15 14:49:05.000000000 -0700
+++ b/bits/stl_deque.h	2011-03-29 10:33:39.000000000 -0700
