diff --git a/main/stasis_message_router.c b/main/stasis_message_router.c
index 4e7bbb5e9d817350256bc78a785a1717dcf7847d..4409d2226595492959142ada9564d0ce1f32771b 100644
--- a/main/stasis_message_router.c
+++ b/main/stasis_message_router.c
@@ -208,8 +208,8 @@ static struct stasis_message_route *route_create(
 static int add_route(struct stasis_message_router *router,
 		     struct stasis_message_route *route)
 {
-	SCOPED_AO2LOCK(lock, router);
 	RAII_VAR(struct stasis_message_route *, existing_route, NULL, ao2_cleanup);
+	SCOPED_AO2LOCK(lock, router);
 
 	if ((existing_route = find_route(router, route->message_type))) {
 		return -1;