          }
 -    public:
  #endif
- 
+
 +public:
  #if defined BOOST_THREAD_USES_DATETIME
          bool timed_lock(system_time const & abs_time)

@@ -175,7 +183,7 @@
             }
         }
 
-        void unlock()
+        void unlock_impl()
         {

+    void thread::join_impl() {
         if (this_thread::get_id() == get_id())
           boost::throw_exception(thread_resource_error(system::errc::resource_deadlock_would_occur, "boost thread: trying joining itself"));

diff -ruN pristine_boost_1_53_0/boost/thread/pthread/mutex.hpp boost_1_53_0/boost/thread/pthread/mutex.hpp
--- pristine_boost_1_53_0/boost/thread/pthread/mutex.hpp	2012-12-02 04:22:33.000000000 -0500
+++ boost_1_53_0/boost/thread/pthread/mutex.hpp	2013-04-13 14:07:41.000000000 -0400
@@ -6,6 +6,8 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

+#include <d2/lockable.hpp>
+#include <d2/timed_lockable.hpp>
 #include <boost/thread/detail/config.hpp>
 #include <pthread.h>
 #include <boost/throw_exception.hpp>
@@ -35,10 +37,11 @@

 namespace boost
 {
-    class mutex
