diff --git a/funcs/func_strings.c b/funcs/func_strings.c
index 57b772088799264ba8d491b876db24d5ab2a11e6..e8ec3fcf83a4879e2f8b4b63eeb8197efde6324d 100644
--- a/funcs/func_strings.c
+++ b/funcs/func_strings.c
@@ -798,7 +798,7 @@ static int replace(struct ast_channel *chan, const char *cmd, char *data, struct
 		AST_APP_ARG(replace);
 	);
 	char *strptr, *varsubst;
-	struct ast_str *str = ast_str_thread_get(&result_buf, 16);
+	RAII_VAR(struct ast_str *, str, ast_str_create(16), ast_free);
 	char find[256]; /* Only 256 characters possible */
 	char replace[2] = "";
 	size_t unused;