diff --git a/main/manager_endpoints.c b/main/manager_endpoints.c
index 1a36424af2d0d375c811a0ae546b764daa152ecd..f0ed28a2ceda36eebb286d4fb27a45058db53f6e 100644
--- a/main/manager_endpoints.c
+++ b/main/manager_endpoints.c
@@ -39,25 +39,22 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 
 static struct stasis_message_router *endpoint_router;
 
-/*! \brief The \ref stasis subscription returned by the forwarding of the endpoint topic
- * to the manager topic
- */
-static struct stasis_subscription *topic_forwarder;
-
 static void manager_endpoints_shutdown(void)
 {
 	stasis_message_router_unsubscribe_and_join(endpoint_router);
 	endpoint_router = NULL;
+}
 
-	stasis_unsubscribe(topic_forwarder);
-	topic_forwarder = NULL;
+static void endpoint_state_cb(void *data, struct stasis_subscription *sub,
+	struct stasis_topic *topic,
+	struct stasis_message *message)
+{
+	stasis_forward_message(ast_manager_get_topic(), stasis_caching_get_topic(ast_endpoint_topic_all_cached()), message);
 }
 
 int manager_endpoints_init(void)
 {
-	struct stasis_topic *manager_topic;
 	struct stasis_topic *endpoint_topic;
-	struct stasis_message_router *message_router;
 	int ret = 0;
 
 	if (endpoint_router) {
@@ -67,30 +64,19 @@ int manager_endpoints_init(void)
 
 	ast_register_atexit(manager_endpoints_shutdown);
 
-	manager_topic = ast_manager_get_topic();
-	if (!manager_topic) {
-		return -1;
-	}
-	message_router = ast_manager_get_message_router();
-	if (!message_router) {
-		return -1;
-	}
 	endpoint_topic = stasis_caching_get_topic(ast_endpoint_topic_all_cached());
 	if (!endpoint_topic) {
 		return -1;
 	}
 
-	topic_forwarder = stasis_forward_all(endpoint_topic, manager_topic);
-	if (!topic_forwarder) {
-		return -1;
-	}
-
 	endpoint_router = stasis_message_router_create(endpoint_topic);
 
 	if (!endpoint_router) {
 		return -1;
 	}
 
+	ret |= stasis_message_router_add(endpoint_router, ast_endpoint_state_type(), endpoint_state_cb, NULL);
+
 	/* If somehow we failed to add any routes, just shut down the whole
 	 * thing and fail it.
 	 */