diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 03f7a447a15d9b424d68aa3f58fc41018d114f8e..3668c253b1b1163ad27a091b410b0561db9eb7ae 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -6115,7 +6115,7 @@ void __sip_destroy(struct sip_pvt *p, int lockowner, int lockdialoglist)
 	}
 
 	/* Remove link from peer to subscription of MWI */
-	if (p->relatedpeer && p->relatedpeer->mwipvt)
+	if (p->relatedpeer && p->relatedpeer->mwipvt == p)
 		p->relatedpeer->mwipvt = dialog_unref(p->relatedpeer->mwipvt, "delete ->relatedpeer->mwipvt");
 	if (p->relatedpeer && p->relatedpeer->call == p)
 		p->relatedpeer->call = dialog_unref(p->relatedpeer->call, "unset the relatedpeer->call field in tandem with relatedpeer field itself");