I will write BMidiEndPoint and all derived class but I have some questions For BMidiEndPoint - What must test the function IsPersistent() and IsValid()=3F - Function Release(), Acquire(), ... do the work or just call function with the same name of the class BMidiRoster=3F - When the ID of this class is initialized=3F because this number is from midi=5Fserver no=3F For BMidiLocalConsumer - What is the purpose of SetTimeout() and Timeout()=3F - What is the variable atomic in the parameters of Data()=3F - Why the class BMidiDispatcher appear and what is his job=3F For BMidiLocalProducer - Did we use the BLocker only in the function SprayEvent()=3F - And what is the Key Word "mutable" before BLocker=3F none of the book I have about C++ talk about. A+ Jerome