diff --git a/src/modules/tm/uac.c b/src/modules/tm/uac.c index ff466760dd2..9b2f51b5f68 100644 --- a/src/modules/tm/uac.c +++ b/src/modules/tm/uac.c @@ -583,11 +583,18 @@ static inline int t_uac_prepare(uac_req_t *uac_r, error2: #ifdef TM_DEL_UNREF - if (!is_ack) { - UNREF_FREE(new_cell); - }else -#endif + if (is_ack) { free_cell(new_cell); + } else { + if(atomic_get_int(&new_cell->ref_count)==0) { + free_cell(new_cell); + } else { + UNREF_FREE(new_cell); + } + } +#else + free_cell(new_cell); +#endif error3: return ret; }