diff --git a/res/res_agi.c b/res/res_agi.c
index f7ff01c5e6..9d312b823c 100644
--- a/res/res_agi.c
+++ b/res/res_agi.c
@@ -3199,9 +3199,9 @@ static int write_htmldump(const char *filename)
fprintf(htmlfile, "
%s - %s |
\n", fullcmd, command->summary);
#ifdef AST_XML_DOCS
stringptmp = ast_xmldoc_printable(command->usage, 0);
- stringp = stringptmp;
+ stringp = ast_strdup(stringptmp);
#else
- stringp = command->usage;
+ stringp = ast_strdup(command->usage);
#endif
tempstr = strsep(&stringp, "\n");
@@ -3216,6 +3216,7 @@ static int write_htmldump(const char *filename)
}
fprintf(htmlfile, "\n");
fprintf(htmlfile, "\n\n");
+ ast_free(stringp);
#ifdef AST_XML_DOCS
ast_free(stringptmp);
#endif