diff --git a/AUTHORS.rst b/AUTHORS.rst
index fe9ae89b..c3820ef7 100644
--- a/AUTHORS.rst
+++ b/AUTHORS.rst
@@ -41,3 +41,4 @@ Patches and suggestions
- Jim Baker
- Michael[tm] Smith
- Marc Abramowitz
+- Jon Dufresne
diff --git a/html5lib/html5parser.py b/html5lib/html5parser.py
index daee854c..3daf2995 100644
--- a/html5lib/html5parser.py
+++ b/html5lib/html5parser.py
@@ -171,8 +171,10 @@ def mainLoop(self):
ParseErrorToken = tokenTypes["ParseError"]
for token in self.normalizedTokens():
+ prev_token = None
new_token = token
while new_token is not None:
+ prev_token = new_token
currentNode = self.tree.openElements[-1] if self.tree.openElements else None
currentNodeNamespace = currentNode.namespace if currentNode else None
currentNodeName = currentNode.name if currentNode else None
@@ -211,10 +213,10 @@ def mainLoop(self):
elif type == DoctypeToken:
new_token = phase.processDoctype(new_token)
- if (type == StartTagToken and token["selfClosing"] and
- not token["selfClosingAcknowledged"]):
+ if (type == StartTagToken and prev_token["selfClosing"] and
+ not prev_token["selfClosingAcknowledged"]):
self.parseError("non-void-element-with-trailing-solidus",
- {"name": token["name"]})
+ {"name": prev_token["name"]})
# When the loop finishes it's EOF
reprocess = True
@@ -1933,6 +1935,7 @@ def processCharacters(self, token):
def startTagCol(self, token):
self.tree.insertElement(token)
self.tree.openElements.pop()
+ token["selfClosingAcknowledged"] = True
def startTagOther(self, token):
ignoreEndTag = self.ignoreEndTagColgroup()
diff --git a/html5lib/tests/test_parser2.py b/html5lib/tests/test_parser2.py
index b7a92fd7..21dc59d9 100644
--- a/html5lib/tests/test_parser2.py
+++ b/html5lib/tests/test_parser2.py
@@ -93,3 +93,9 @@ def test_debug_log():
def test_no_duplicate_clone():
frag = parseFragment("
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: