diff --git a/main/app.c b/main/app.c
index a73349b986544cbe93159d81dc2485251490100d..623843a13cb6a9dba37333a0fba277353a68de62 100644
--- a/main/app.c
+++ b/main/app.c
@@ -3356,8 +3356,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 9a1a5ad45d4cfec88512764c649b3e340e208405..3fee6ba3d85d00c9bf17b8921fe3d303005dc83c 100644
--- a/main/stasis.c
+++ b/main/stasis.c
@@ -402,6 +402,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) {
@@ -456,6 +457,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)
@@ -754,6 +757,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 56225155eb319de167b5b4db8121489ca74249c6..7f86d981b668acddd353989f5b2bf4c5957322fd 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);