> Probably because that causes some assembly to be emitted because of
> the efficiency requirements of the mutex, and the CLR does not support
> direct assembly. Either get out of the CLR, or do not use anything
> that uses low assembly constructs (CLR has its own thread and mutex
> classes anyway).

Well, so I can't "just get out of the CLR". As I mentioned earlier, this is a managed C++ project that exposes native functionality from other libraries to .NET. That is, I *have* to include the native headers, which in turn include boost.

This worked fine in VS2008, too, so it sounds more like a regression in the compiler I think.

Also, when compiling for x86, I see the following warning but everything still compiles (the warning is to be expected, as you say yourself):

4>boost_1_43_0_sdk\include\boost\thread\win32\basic_timed_mutex.hpp(160): warning C4793: 'boost::detail::basic_timed_mutex::unlock' : function compiled as native :
4> Found an intrinsic not supported in managed code

/ Soren