diff --git a/main/udptl.c b/main/udptl.c
index 4e48ac80ef3602594ae182a2803956447802406f..bc96790fdf0f17a0c520736d28576d23737a11e7 100644
--- a/main/udptl.c
+++ b/main/udptl.c
@@ -1471,9 +1471,13 @@ int ast_udptl_reload(void)
 	return 0;
 }
 
-/*! \internal \brief Clean up resources on Asterisk shutdown */
+/*!
+ * \internal
+ * \brief Clean up resources on Asterisk shutdown
+ */
 static void udptl_shutdown(void)
 {
+	ast_cli_unregister_multiple(cli_udptl, ARRAY_LEN(cli_udptl));
 	ao2_t_global_obj_release(globals, "Unref udptl global container in shutdown");
 	aco_info_destroy(&cfg_info);
 }
@@ -1509,9 +1513,9 @@ void ast_udptl_init(void)
 	aco_option_register_custom(&cfg_info, "t38faxudpec", ACO_EXACT, general_options, NULL, removed_options_handler, 0);
 	aco_option_register_custom(&cfg_info, "t38faxmaxdatagram", ACO_EXACT, general_options, NULL, removed_options_handler, 0);
 
-	ast_cli_register_multiple(cli_udptl, ARRAY_LEN(cli_udptl));
-
 	__ast_udptl_reload(0);
 
+	ast_cli_register_multiple(cli_udptl, ARRAY_LEN(cli_udptl));
+
 	ast_register_atexit(udptl_shutdown);
 }