diff --git a/core/sip/trans_layer.cpp b/core/sip/trans_layer.cpp index 288570bd..279be781 100644 --- a/core/sip/trans_layer.cpp +++ b/core/sip/trans_layer.cpp @@ -1269,7 +1269,9 @@ int _trans_layer::update_uac_reply(trans_bucket* bucket, sip_trans* t, sip_msg* } to_tag = ((sip_from_to*)msg->to->p)->tag; - if((t->msg->u.request->method != sip_request::CANCEL) && !to_tag.len){ + if((t->msg->u.request->method != sip_request::CANCEL) && + (reply_code < 300) && + !to_tag.len){ if (!trans_layer::accept_fr_without_totag) { DBG("To-tag missing in final reply (see sems.conf?)\n"); return -1;