You're right about that - but my thread priorities are set such that I have one thread at priority 25, one at 30, one at 35, etc. Each of those ends up blocking on the mq_send at the same time. When space becomes available in the queue, I would expect the thread with the highest priority to wake up and post its message. The priority of the message posted simply matched the priority of the thread posting so that I could tell who posted. I'm seeing that the thread who blocks first wakes up first, even if they have a lower priority. This is not as expected - I expect the threads to wake in priority order, but that doesn't seem to be the case. Would it help if I sent over my test application? ��.n��������+%������w��{.n�����{��w��ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f