I have created a mutex class which is a model of the mutex concept. I also have lock classes for this mutex which models the lock concept (e.g. called CMyLock). (The reason for this is to implement a read/write mutex and associated read and write locks) According to the boost documentation I should be able to use this lock with the boost::condition but I get a compile time error:- 'm_mutex' : is not a member of 'CMyLock' This is due to the condition::wait method defined in condition.hpp making a reference to lock.m_mutex Surely boost::condition only needs a lock object to be an instance of a class which is a model of lock. The lock concept makes no reference to a member variable called m_mutex. Is this a bug of boost::condition or am I doing something wrong. Any ideas? Many thanks.