diff --git a/main/xmldoc.c b/main/xmldoc.c
index f537e06c824e8b5da94eb009c25cf21bcec3405d..18afbb6368d1b478c3e6b2d2a089b5a7ede7db3b 100644
--- a/main/xmldoc.c
+++ b/main/xmldoc.c
@@ -759,6 +759,7 @@ static char *xmldoc_get_syntax_fun(struct ast_xml_node *rootnode, const char *ro
 				if ((paramtype = ast_xml_get_attribute(node, "required"))) {
 					if (!ast_true(paramtype)) {
 						optmidnode = 1;
+						ast_xml_free_attr(paramtype);
 						break;
 					}
 					ast_xml_free_attr(paramtype);