diff --git a/res/res_pjsip_outbound_registration.c b/res/res_pjsip_outbound_registration.c
index 7ff5f1619bfb390b2cdc8bd974426158ce8fa193..7b125334a87b969a638d44fefe00c3486ac54791 100644
--- a/res/res_pjsip_outbound_registration.c
+++ b/res/res_pjsip_outbound_registration.c
@@ -1846,6 +1846,13 @@ static void registration_loaded_observer(const char *name, const struct ast_sorc
 		return;
 	}
 
+	/*
+	 * Refresh the current configured registrations. We don't need to hold
+	 * onto the objects, as the apply handler will cause their states to
+	 * be created appropriately.
+	 */
+	ao2_cleanup(get_registrations());
+
 	/* Now to purge dead registrations. */
 	ao2_callback(states, OBJ_UNLINK | OBJ_NODATA | OBJ_MULTIPLE, check_state, NULL);
 	ao2_ref(states, -1);