diff --git a/main/app.c b/main/app.c
index e8a4d2f4565819dac663588527ab8ac5dbe4b61d..d272e40b42f8772169061d82f7a2faa1b9b2ed95 100644
--- a/main/app.c
+++ b/main/app.c
@@ -3337,8 +3337,6 @@ int ast_delete_mwi_state_full(const char *mailbox, const char *context, struct a
 		stasis_publish(mailbox_specific_topic, clear_msg);
 	}
 
-	stasis_topic_pool_delete_topic(mwi_topic_pool, mwi_state->uniqueid);
-
 	ao2_cleanup(clear_msg);
 	return 0;
 }
diff --git a/main/stasis.c b/main/stasis.c
index 5f4a147deed9d5ef66d65de60cc6f6d1a2de7b49..7dd3893d08c6995d92ce2a9714a90a631794262f 100644
--- a/main/stasis.c
+++ b/main/stasis.c
@@ -400,6 +400,7 @@ static void topic_dtor(void *obj)
 
 	AST_VECTOR_FREE(&topic->subscribers);
 	AST_VECTOR_FREE(&topic->upstream_topics);
+	ast_debug(1, "Topic '%s': %p destroyed\n", topic->name, topic);
 
 #ifdef AST_DEVMODE
 	if (topic->statistics) {
@@ -454,6 +455,8 @@ struct stasis_topic *stasis_topic_create(const char *name)
 	strcpy(topic->name, name); /* SAFE */
 	res |= AST_VECTOR_INIT(&topic->subscribers, INITIAL_SUBSCRIBERS_MAX);
 	res |= AST_VECTOR_INIT(&topic->upstream_topics, 0);
+	ast_debug(1, "Topic '%s': %p created\n", topic->name, topic);
+
 #ifdef AST_DEVMODE
 	topic->statistics = stasis_topic_statistics_create(topic);
 	if (!topic->name || !topic->statistics || res)
@@ -752,6 +755,7 @@ struct stasis_subscription *internal_stasis_subscribe(
 
 	if (topic_add_subscription(topic, sub) != 0) {
 		ao2_ref(sub, -1);
+		ao2_ref(topic, -1);
 
 		return NULL;
 	}
diff --git a/res/res_pjsip_mwi.c b/res/res_pjsip_mwi.c
index eeb8a18a63d7bd2687ffba0cae89d17535d31636..72f8b59492c8c8f6e15835837961c70fcd84167b 100644
--- a/res/res_pjsip_mwi.c
+++ b/res/res_pjsip_mwi.c
@@ -259,10 +259,12 @@ static struct mwi_stasis_subscription *mwi_stasis_subscription_alloc(const char
 	/* Safe strcpy */
 	strcpy(mwi_stasis_sub->mailbox, mailbox);
 
-	ast_debug(3, "Creating stasis MWI subscription to mailbox %s for endpoint %s\n",
-		mailbox, mwi_sub->id);
+	ast_debug(3, "Creating stasis MWI subscription to mailbox %s for endpoint %s.  Topic: '%s':%p %d\n",
+		mailbox, mwi_sub->id, stasis_topic_name(topic), topic, (int)ao2_ref(topic, 0));
 	ao2_ref(mwi_sub, +1);
 	mwi_stasis_sub->stasis_sub = stasis_subscribe_pool(topic, mwi_stasis_cb, mwi_sub);
+	ao2_ref(topic, -1);
+
 	if (!mwi_stasis_sub->stasis_sub) {
 		/* Failed to subscribe. */
 		ao2_ref(mwi_stasis_sub, -1);