diff --git a/main/pbx.c b/main/pbx.c
index 55b97bcac668fb5d1c87a4dd825364bef906a0e4..cb9a5bf5fb13068f1793355ef2dec2133b0af2d2 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -3391,7 +3391,7 @@ int ast_extension_state_add(const char *context, const char *exten,
 	 */
 	if (e->exten[0] == '_') {
 		ast_add_extension(e->parent->name, 0, exten, e->priority, e->label,
-			e->cidmatch, e->app, ast_strdup(e->data), free,
+			e->cidmatch, e->app, ast_strdup(e->data), ast_free_ptr,
 			e->registrar);
 		e = ast_hint_extension(NULL, context, exten);
 		if (!e || e->exten[0] == '_') {