Is it possible to use a Queue object from two different threads like this: Queue<MessageRef> msgQueue Thread1: MessageRef getmsgRef; while (1) ... msgQueue->RemoveHead(getmsgRef); // Get data from queue ... Thread2: MessageRef putmsgRef; while (1) ... inQueue->AddTail(putmsgRef); // Put data in to queue ... I want to send data from one thread to another (producer - consumer ) using a Queue. Will I have to use EnterCriticalSection() around RemoveHead/AddTail? I also want to use SendMessageToSessions() in another thread than the one where my Win32MessageTransceiverThread-loop is running. I have run into problems doing this and the reason seems to be multi-threading related. Best regards, Paal Grana