        { this->_M_swap(__s); }
  
        // String operations:
+diff -ur a/tr1_impl/hashtable b/tr1_impl/hashtable
+--- a/tr1_impl/hashtable	2011-03-15 14:49:07.000000000 -0700
++++ b/tr1_impl/hashtable	2011-05-02 23:41:55.000000000 -0700
+@@ -225,11 +225,7 @@
+ 
+       ~_Hashtable();
+ 
+-#ifdef _GLIBCXX_INCLUDE_AS_CXX0X
+-      void swap(_Hashtable&&);
+-#else
+       void swap(_Hashtable&);
+-#endif
+ 
+       // Basic container operations
+       iterator
+@@ -732,11 +728,7 @@
+     void
+     _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal,
+ 	       _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::
+-#ifdef _GLIBCXX_INCLUDE_AS_CXX0X
+-    swap(_Hashtable&& __x)
+-#else
+     swap(_Hashtable& __x)
+-#endif
+     {
+       // The only base class with member variables is hash_code_base.  We
+       // define _Hash_code_base::_M_swap because different specializations
+diff -ur a/tuple b/tuple
+--- a/tuple	2011-03-15 14:49:07.000000000 -0700
++++ b/tuple	2011-05-02 23:33:23.000000000 -0700
+@@ -77,7 +77,7 @@
+       _Head&       _M_head()       { return *this; }
+       const _Head& _M_head() const { return *this; }
+     
+-      void _M_swap_impl(_Head&&) { /* no-op */ }
++      void _M_swap_impl(_Head&) { /* no-op */ }
+     };
+ 
+   template<std::size_t _Idx, typename _Head>
+@@ -97,7 +97,7 @@
+       const _Head& _M_head() const { return _M_head_impl; }        
+ 
+       void
+-      _M_swap_impl(_Head&& __h)
++      _M_swap_impl(_Head& __h)
+       { 
+ 	using std::swap;
+ 	swap(__h, _M_head_impl);
+@@ -125,7 +125,7 @@
+     struct _Tuple_impl<_Idx>
+     { 
+     protected:
+-      void _M_swap_impl(_Tuple_impl&&) { /* no-op */ }
++      void _M_swap_impl(_Tuple_impl&) { /* no-op */ }
+     };
+ 
+   /**
+@@ -214,7 +214,7 @@
+ 
+     protected:
+       void
+-      _M_swap_impl(_Tuple_impl&& __in)
++      _M_swap_impl(_Tuple_impl& __in)
+       {
+ 	_Base::_M_swap_impl(__in._M_head());
+ 	_Inherited::_M_swap_impl(__in._M_tail());
+@@ -292,7 +292,7 @@
+ 	}
+ 
+       void
+-      swap(tuple&& __in)
++      swap(tuple& __in)
+       { _Inherited::_M_swap_impl(__in); }
+     };
+ 
+@@ -301,7 +301,7 @@
+     class tuple<>
+     {
+     public:
+-      void swap(tuple&&) { /* no-op */ }
++      void swap(tuple&) { /* no-op */ }
+     };
+ 
+   /// tuple (2-element), with construction and assignment from a pair.
+@@ -394,7 +394,7 @@
+ 	}
+ 
+       void
+-      swap(tuple&& __in)
++      swap(tuple& __in)
+       { 
+ 	using std::swap;
+ 	swap(this->_M_head(), __in._M_head());

       { _M_t.swap(__x._M_t); }
 
       // insert/erase
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

       {
 	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/unique_ptr.h b/bits/unique_ptr.h
--- a/bits/unique_ptr.h	2011-03-15 14:49:05.000000000 -0700
+++ b/bits/unique_ptr.h	2011-03-31 16:40:45.000000000 -0700
@@ -204,7 +204,7 @@
       }
 
       void
-      swap(unique_ptr&& __u)
+      swap(unique_ptr& __u)
       {
 	using std::swap;
 	swap(_M_t, __u._M_t);
@@ -350,7 +350,7 @@
         void reset(_Up) = delete;
 
       void
-      swap(unique_ptr&& __u)
+      swap(unique_ptr& __u)
       {
 	using std::swap;
 	swap(_M_t, __u._M_t);
@@ -389,18 +389,6 @@
 	 unique_ptr<_Tp, _Tp_Deleter>& __y)
     { __x.swap(__y); }
 
-  template<typename _Tp, typename _Tp_Deleter> 
-    inline void
-    swap(unique_ptr<_Tp, _Tp_Deleter>&& __x,
-	 unique_ptr<_Tp, _Tp_Deleter>& __y)
-    { __x.swap(__y); }
-
-  template<typename _Tp, typename _Tp_Deleter> 
-    inline void
-    swap(unique_ptr<_Tp, _Tp_Deleter>& __x,
-	 unique_ptr<_Tp, _Tp_Deleter>&& __y)
-    { __x.swap(__y); }
-  
   template<typename _Tp, typename _Tp_Deleter,
 	   typename _Up, typename _Up_Deleter>
     inline bool
diff -ur a/exception_ptr.h b/exception_ptr.h
--- a/exception_ptr.h	2011-03-15 14:49:08.000000000 -0700
+++ b/exception_ptr.h	2011-03-29 10:33:39.000000000 -0700
