diff --git a/lib/pure/htmlparser.nim b/lib/pure/htmlparser.nim
index 9d4b57dc0b..c38c36874d 100644
--- a/lib/pure/htmlparser.nim
+++ b/lib/pure/htmlparser.nim
@@ -1890,7 +1890,7 @@ proc entityToUtf8*(entity: string): string =
proc addNode(father, son: XmlNode) =
if son != nil: add(father, son)
-proc parse(x: var XmlParser, errors: var seq[string]): XmlNode
+proc parse(x: var XmlParser, errors: var seq[string]): XmlNode {.gcsafe.}
proc expected(x: var XmlParser, n: XmlNode): string =
result = errorMsg(x, "" & n.tag & "> expected")