diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 727ab43e83c4ba99092a493c4f6721add4ed1f13..e236ff227bb0269eb4927eb5ff70f14f6d99fdc0 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -17216,13 +17216,7 @@ static int unload_module(void)
 	while (p) {
 		pl = p;
 		p = p->next;
-		/* Free associated memory */
-		ast_mutex_destroy(&pl->pvt_lock);
-		if (pl->chanvars) {
-			ast_variables_destroy(pl->chanvars);
-			pl->chanvars = NULL;
-		}
-		free(pl);
+		__sip_destroy(pl, TRUE, TRUE);
 	}
 	dialoglist = NULL;
 	ast_mutex_unlock(&dialoglock);