        public:
 
  #if defined BOOST_THREAD_USES_DATETIME
-@@ -538,7 +553,6 @@
+@@ -538,7 +554,6 @@
              return timed_join(get_system_time()+rel_time);
          }
  #endif

         {
-            return detail::thread_data_ptr(detail::heap_new<detail::thread_data<typename boost::remove_reference<F>::type> >(
-                boost::forward<F>(f)));
+            return detail::thread_data_ptr(detail::heap_new<detail::thread_data<d2::thread_function<F> > >(
+                this->get_thread_function(boost::forward<F>(f))));
         }
 #endif

 #endif

 #define BOOST_THREAD_DEFINES_RECURSIVE_TIMED_MUTEX_NATIVE_HANDLE
diff -ruN pristine_boost_1_53_0/boost/thread/win32/mutex.hpp boost_1_53_0 2/boost/thread/win32/mutex.hpp
--- pristine_boost_1_53_0/boost/thread/win32/mutex.hpp	2012-12-02 04:22:33.000000000 -0500
+++ boost_1_53_0 2/boost/thread/win32/mutex.hpp	2013-05-04 15:39:43.000000000 -0400
@@ -6,6 +6,8 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
