Index: boost/regex/pending/static_mutex.hpp =================================================================== --- boost/regex/pending/static_mutex.hpp (revision 2) +++ boost/regex/pending/static_mutex.hpp (working copy) @@ -127,10 +127,13 @@ // #define B1 #define B2 +#define B3 #include B1 #include B2 +#include B3 #undef B1 #undef B2 +#undef B3 namespace boost{ @@ -158,7 +161,7 @@ void lock(); void unlock(); private: - boost::recursive_mutex::scoped_lock* m_plock; + boost::unique_lock* m_plock; bool m_have_lock; }; Index: libs/regex/src/static_mutex.cpp =================================================================== --- libs/regex/src/static_mutex.cpp (revision 2) +++ libs/regex/src/static_mutex.cpp (working copy) @@ -157,7 +157,7 @@ { boost::call_once(static_mutex::m_once,&static_mutex::init); if(0 == m_plock) - m_plock = new boost::recursive_mutex::scoped_lock(*static_mutex::m_pmutex, boost::defer_lock); + m_plock = new boost::unique_lock(*static_mutex::m_pmutex, boost::defer_lock); m_plock->lock(); m_have_lock = true; }