diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index 6045a09f07185a9231eb2537e9357b024ab02efa..f8f5328299c8fed065810b281e2ee7c5a41f4752 100644
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -8571,6 +8571,9 @@ int skinny_reload(void)
 		   We do not want to free the line here, that
 		   will happen below. */
 		while ((l = AST_LIST_REMOVE_HEAD(&d->lines, list))) {
+			if (l->mwi_event_sub) {
+				l->mwi_event_sub = stasis_unsubscribe(l->mwi_event_sub);
+			}
 		}
 		/* Delete all speeddials for this device */
 		while ((sd = AST_LIST_REMOVE_HEAD(&d->speeddials, list))) {