Looking more into this, somehow if I delay it, it works half the time... But it still happens, I cannot have this happen. The comment for that is this, "On the other hand, also warn if the thread descriptor buffer seem to have been used to register other threads." The descriptor is like the threads address if I'm not mistaken, how am I to make sure the thread isn't going to be the same? From what I read in the code, it's checking a NULL against the thread's descriptor as I my code to create the thread is this. pj_thread_desc PJThreadDesc; if (!pj_thread_is_registered()) { pj_thread_t *pjThread; pj_status_t status = pj_thread_register(NULL, PJThreadDesc, &pjThread); if (status!=PJ_SUCCESS) printf("Error registering thread for PJSUA %d\n", status); } And I see that the thread register gets the thread from pj_thread_t *thread = (pj_thread_t *)desc; which in term means that it'll be NULL, from what I understand, so what could be making the thread descriptor NULL? I'll look more into this and add some more debugging to see if I can figure this out, any help is appreciated. Thanks, Mr. Gecko -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20100917/1308f7c7/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4657 bytes Desc: not available URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20100917/1308f7c7/attachment.p7s>