diff --git a/main/manager.c b/main/manager.c
index 35ba5d46cbfcbaa20b280d347c13172c4363edf7..f5d00d1d35a05bf4f87b70a6f7762f2e7d8ab896 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -6317,7 +6317,7 @@ int ast_manager_register2(const char *action, int auth, int (*func)(struct manse
 {
 	struct manager_action *cur;
 
-	cur = ao2_alloc(sizeof(*cur), action_destroy);
+	cur = ao2_t_alloc(sizeof(*cur), action_destroy, action);
 	if (!cur) {
 		return -1;
 	}
diff --git a/res/res_fax.c b/res/res_fax.c
index d59ab09e6e7b1abcf455c5e048a6bbf671bdd0ac..68d2972cbd68942f3c24e1f23eac653deb10f241 100644
--- a/res/res_fax.c
+++ b/res/res_fax.c
@@ -4553,6 +4553,10 @@ static int unload_module(void)
 		ast_log(LOG_WARNING, "failed to unregister '%s'\n", app_receivefax);
 	}
 
+	ast_manager_unregister("FAXSessions");
+	ast_manager_unregister("FAXSession");
+	ast_manager_unregister("FAXStats");
+
 	if (fax_logger_level != -1) {
 		ast_logger_unregister_level("FAX");
 	}