diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 299795ab7992afd92a8f30d9f9b2528510f9229e..e2546b49114400807bb2408ad168e6105d054006 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -4391,7 +4391,7 @@ int __sip_ack(struct sip_pvt *p, uint32_t seqno, int resp, int sipmethod)
 	  If obforcing is set, we will keep the outbound proxy during the whole
 	  dialog, regardless of what the SIP rfc says
 	*/
-	if (p->outboundproxy && !p->outboundproxy->force){
+	if (p->outboundproxy && !p->outboundproxy->force) {
 		ref_proxy(p, NULL);
 	}
 
@@ -6460,6 +6460,10 @@ void __sip_destroy(struct sip_pvt *p, int lockowner, int lockdialoglist)
 		p->options = NULL;
 	}
 
+	if (p->outboundproxy) {
+		ref_proxy(p, NULL);
+	}
+
 	if (p->notify) {
 		ast_variables_destroy(p->notify->headers);
 		ast_free(p->notify->content);