diff --git a/HTMLparser.c b/HTMLparser.c
index 02cde5ac..07391d8a 100644
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -1533,20 +1533,11 @@ htmlAutoCloseOnEnd(htmlParserCtxtPtr ctxt)
static void
htmlAutoClose(htmlParserCtxtPtr ctxt, const xmlChar * newtag)
{
- while ((newtag != NULL) && (ctxt->name != NULL) &&
- (htmlCheckAutoClose(newtag, ctxt->name))) {
- if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
- ctxt->sax->endElement(ctxt->userData, ctxt->name);
- htmlnamePop(ctxt);
- }
- if (newtag == NULL) {
- htmlAutoCloseOnEnd(ctxt);
+ if (newtag == NULL)
return;
- }
- while ((newtag == NULL) && (ctxt->name != NULL) &&
- ((xmlStrEqual(ctxt->name, BAD_CAST "head")) ||
- (xmlStrEqual(ctxt->name, BAD_CAST "body")) ||
- (xmlStrEqual(ctxt->name, BAD_CAST "html")))) {
+
+ while ((ctxt->name != NULL) &&
+ (htmlCheckAutoClose(newtag, ctxt->name))) {
if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
ctxt->sax->endElement(ctxt->userData, ctxt->name);
htmlnamePop(ctxt);