diff --git a/parser/htmlparser/src/nsHTMLTokens.cpp b/parser/htmlparser/src/nsHTMLTokens.cpp index 17e88e2d11bb..c2765675e893 100644 --- a/parser/htmlparser/src/nsHTMLTokens.cpp +++ b/parser/htmlparser/src/nsHTMLTokens.cpp @@ -903,7 +903,11 @@ nsresult CTextToken::ConsumeParsedCharacterData(PRUnichar aChar, // CCommentToken expects us to be on the '-' aScanner.SetPosition(currPos.advance(2)); - result = consumer.Consume(*currPos, aScanner, aFlag); + + // In quirks mode we consume too many things as comments, so pretend + // that we're not by modifying aFlag. + result = consumer.Consume(*currPos, aScanner, + (aFlag & ~NS_IPARSER_FLAG_QUIRKS_MODE) | NS_IPARSER_FLAG_STRICT_MODE); if (kEOF == result) { return kEOF; // this can only happen if we're really out of space. }