After calling: status = pjsua_create(); .... pjsua_destroy(); several times in a row, pjsua_create() started to return error: 21:50:03.003 pjsua_core.c Unable to create mutex: Resource busy [status=120016] It seems it happen because one of the mutexes was not destroyed. Applying the patch as bellow fix the issue. After resolving the first issue I've got similar case in sip_transport.c. At some point this code returns status: "Resource busy". status = pj_lock_create_recursive_mutex(pool, "tmgr%p", &mgr->lock); if (status != PJ_SUCCESS) return status; It looks like in some cases this mutex wasn't destroyed. It's not so obvious where. Please advise what can be wrong. Thanks, Dmitry Index: pjsua_core.c =================================================================== --- pjsua_core.c (revision 4303) +++ pjsua_core.c (working copy) @@ -1634,6 +1634,10 @@ pj_mutex_destroy(pjsua_var.mutex); pjsua_var.mutex = NULL; } + if (pjsua_var.timer_mutex) { + pj_mutex_destroy(pjsua_var.timer_mutex); + pjsua_var.timer_mutex = NULL; + } /* Destroy pool and pool factory. */ if (pjsua_var.pool) {