http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50862
--- Comment #4 from basz <bartosz.szurgot at pwr dot wroc.pl> 2011-10-25 13:51:45 UTC --- the most recent document on C++0x i have is N3290. according to it it is so for condition_variable (30.5.1.9 and 30.5.1.10), but description for wait() of condition_variable_any is a bit more confusing. it says that it must be called in 30.5.2.10, but 30.5.2.9 say it is undefined, if lock is called or not ("Note: if any of the wait functions exits via an exception, it is unspeciļ¬ed whether the Lock is held. One can use a Lock type that allows to query that, such as the unique_lock wrapper.")... :/ i hope this is just a simple mistake in the spec (otherwise it would be a bit of a pain in the neck). do you have any more recent document to verify this? perhaps this should be a separate bug report?