diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 0e3efaeb842afed447b7d9708965ebf9b917ddb7..ac17f78faa12615f589d64e19ff7c45def92132b 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -12850,7 +12850,7 @@ static void update_connectedline(struct sip_pvt *p, const void *data, size_t dat
 			ast_set_flag(&p->flags[0], SIP_OUTGOING);
 			p->invitestate = INV_CALLING;
 			send_request(p, &req, XMIT_CRITICAL, p->ocseq);
-		} else if (is_method_allowed(&p->allowed_methods, SIP_UPDATE)) {
+		} else if ((is_method_allowed(&p->allowed_methods, SIP_UPDATE)) && (!ast_strlen_zero(p->okcontacturi))) { 
 			reqprep(&req, p, SIP_UPDATE, 0, 1);
 			add_rpid(&req, p);
 			add_header(&req, "X-Asterisk-rpid-update", "Yes");