Index: detail/thread_group.hpp =================================================================== --- detail/thread_group.hpp (revision 62599) +++ detail/thread_group.hpp (working copy) @@ -18,10 +18,13 @@ namespace boost { - class thread_group: - private noncopyable + class thread_group { + private: + thread_group(thread_group const&); + thread_group& operator=(thread_group const&); public: + thread_group() {} ~thread_group() { for(std::list::iterator it=threads.begin(),end=threads.end(); Index: pthread/mutex.hpp =================================================================== --- pthread/mutex.hpp (revision 62599) +++ pthread/mutex.hpp (working copy) @@ -27,10 +27,11 @@ namespace boost { - class mutex: - boost::noncopyable + class mutex { private: + mutex(mutex const&); + mutex& operator=(mutex const&); pthread_mutex_t m; public: mutex() @@ -83,10 +84,12 @@ typedef mutex try_mutex; - class timed_mutex: - boost::noncopyable + class timed_mutex { private: + timed_mutex(timed_mutex const&); + timed_mutex& operator=(timed_mutex const&); + private: pthread_mutex_t m; #ifndef BOOST_PTHREAD_HAS_TIMEDLOCK pthread_cond_t cond; Index: pthread/recursive_mutex.hpp =================================================================== --- pthread/recursive_mutex.hpp (revision 62599) +++ pthread/recursive_mutex.hpp (working copy) @@ -30,10 +30,11 @@ namespace boost { - class recursive_mutex: - boost::noncopyable + class recursive_mutex { private: + recursive_mutex(recursive_mutex const&); + recursive_mutex& operator=(recursive_mutex const&); pthread_mutex_t m; public: recursive_mutex() @@ -92,10 +93,12 @@ typedef recursive_mutex recursive_try_mutex; - class recursive_timed_mutex: - boost::noncopyable + class recursive_timed_mutex { private: + recursive_timed_mutex(recursive_timed_mutex const&); + recursive_timed_mutex& operator=(recursive_timed_mutex const&); + private: pthread_mutex_t m; #ifndef BOOST_PTHREAD_HAS_TIMEDLOCK pthread_cond_t cond; Index: win32/recursive_mutex.hpp =================================================================== --- win32/recursive_mutex.hpp (revision 62599) +++ win32/recursive_mutex.hpp (working copy) @@ -20,9 +20,11 @@ namespace boost { class recursive_mutex: - boost::noncopyable, public ::boost::detail::basic_recursive_mutex { + private: + recursive_mutex(recursive_mutex const&); + recursive_mutex& operator=(recursive_mutex const&); public: recursive_mutex() { @@ -40,9 +42,11 @@ typedef recursive_mutex recursive_try_mutex; class recursive_timed_mutex: - boost::noncopyable, public ::boost::detail::basic_recursive_timed_mutex { + private: + recursive_timed_mutex(recursive_timed_mutex const&); + recursive_timed_mutex& operator=(recursive_timed_mutex const&); public: recursive_timed_mutex() { Index: win32/shared_mutex.hpp =================================================================== --- win32/shared_mutex.hpp (revision 62599) +++ win32/shared_mutex.hpp (working copy) @@ -19,10 +19,12 @@ namespace boost { - class shared_mutex: - private boost::noncopyable + class shared_mutex { private: + shared_mutex(shared_mutex const&); + shared_mutex& operator=(shared_mutex const&); + private: struct state_data { unsigned shared_count:11,