diff --git a/libs/sofia-sip/.update b/libs/sofia-sip/.update index 848230d853..306e59d492 100644 --- a/libs/sofia-sip/.update +++ b/libs/sofia-sip/.update @@ -1 +1 @@ -Fri Sep 12 12:27:38 EDT 2008 +Fri Sep 12 12:28:02 EDT 2008 diff --git a/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.c b/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.c index 2b1bd8bf26..4a21249ae5 100644 --- a/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.c +++ b/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.c @@ -2188,9 +2188,12 @@ static int nua_client_request_complete(nua_client_request_t *cr) { if (cr->cr_orq) { + nua_client_request_ref(cr); if (cr && cr->cr_methods->crm_complete) cr->cr_methods->crm_complete(cr); nua_client_request_clean(cr); + if (nua_client_request_unref(cr)) + return 1; } return nua_client_request_remove(cr); @@ -2224,8 +2227,7 @@ nua_client_request_destroy(nua_client_request_t *cr) cr->cr_msg = NULL, cr->cr_sip = NULL; if (cr->cr_orq) - nta_outgoing_destroy(cr->cr_orq); - cr->cr_orq = NULL; + nta_outgoing_destroy(cr->cr_orq), cr->cr_orq = NULL; if (cr->cr_target) su_free(nh->nh_home, cr->cr_target);