http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46455
--- Comment #26 from Jonathan Wakely <redi at gcc dot gnu.org> 2010-11-16 23:03:08 UTC --- Oops, that patch was broken - could you change the recursive mutex destructor so it calls _S_destroy(&_M_mutex, 0) instead of _S_destroy(&_M_mutex) As I can only test on POSIX systems I didn't notice I'd copied the code wrong from my prototype version which I used to simulate the Win32 case.