diff --git a/main/pbx.c b/main/pbx.c
index 1e5e0e2c91d0a1faaf2bc8a469db8d5f556b3360..b65268f5f8389289ba4f3a7fc2df5c6678db067e 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -3957,6 +3957,7 @@ int ast_custom_function_unregister(struct ast_custom_function *acf)
 	AST_RWLIST_TRAVERSE_SAFE_BEGIN(&escalation_root, cur_escalation, list) {
 		if (cur_escalation->acf == acf) {
 			AST_RWLIST_REMOVE_CURRENT(list);
+			ast_free(cur_escalation);
 			break;
 		}
 	}