Index: addons/ooh323c/src/ooq931.c =================================================================== --- addons/ooh323c/src/ooq931.c (revision 410536) +++ addons/ooh323c/src/ooq931.c (working copy) @@ -2604,11 +2604,11 @@ int ooH323MakeCall(char *dest, char *callToken, oo { if(gH323ep.gkClient->state == GkClientRegistered) { call->callState = OO_CALL_WAITING_ADMISSION; + ast_mutex_lock(&call->GkLock); ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, call, FALSE); tv = ast_tvnow(); ts.tv_sec = tv.tv_sec + 24; ts.tv_nsec = tv.tv_usec * 1000; - ast_mutex_lock(&call->GkLock); if (call->callState == OO_CALL_WAITING_ADMISSION) ast_cond_timedwait(&call->gkWait, &call->GkLock, &ts); if (call->callState == OO_CALL_WAITING_ADMISSION) Index: addons/ooh323c/src/ooh323.c =================================================================== --- addons/ooh323c/src/ooh323.c (revision 410536) +++ addons/ooh323c/src/ooh323.c (working copy) @@ -1719,12 +1719,12 @@ int ooHandleH2250Message(OOH323CallData *call, Q93 if(gH323ep.gkClient->state == GkClientRegistered) { call->callState = OO_CALL_WAITING_ADMISSION; + ast_mutex_lock(&call->GkLock); ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, call, FALSE); tv = ast_tvnow(); ts.tv_sec = tv.tv_sec + 24; ts.tv_nsec = tv.tv_usec * 1000; - ast_mutex_lock(&call->GkLock); if (call->callState == OO_CALL_WAITING_ADMISSION) ast_cond_timedwait(&call->gkWait, &call->GkLock, &ts); if (call->callState == OO_CALL_WAITING_ADMISSION)