Ok, I've been porting my code from 1.0.3 to 1.4 (Big shout out to samuel vinson for those great patches), but I'm stumbling across an assertion with some threading stuff in the code. The basic behavior is , when the call is made, the audio driver sets up (or whatever, the usual fashion), it all works, I hang up. Then go to make another call and get Assertion failed: (thread->signature1 != 0xDEAFBEEF || thread- >signature2 != 0xDEADC0DE || (thread->thread == pthread_self())), function pj_thread_register, file ../src/pj/os_core_unix.c, line 384. Arising from the following code;- if(!thread_registered && !pj_thread_is_registered()) { PJ_LOG(1,(THIS_FILE,"New thread!")); if (pj_thread_register(NULL,desc,&thread) == PJ_SUCCESS) { thread_registered = PJ_TRUE; } } which lives early on in playAQBufferCallback(...) which is called from I'm not entirely sure whats going on, although I'll note I wasn't getting this behavior in 1.0.3 , unless I was trying something a bit dramatic, like shutting down the whole thing and re-starting it. What's the process for shutting down the driver before restarting it , between calls, or should I be looking elsewhere? =================================== Shayne O'Neill Development Mobile, Web and Business process integration. shayne.oneill at gmail.com 0400247091 Ask me about how Alfresco can help your business grow.