diff --git a/mozilla/parser/htmlparser/src/CNavDTD.cpp b/mozilla/parser/htmlparser/src/CNavDTD.cpp
index 947a940f5f2..9b8c883ad3c 100644
--- a/mozilla/parser/htmlparser/src/CNavDTD.cpp
+++ b/mozilla/parser/htmlparser/src/CNavDTD.cpp
@@ -1547,7 +1547,9 @@ CNavDTD::HandleEndToken(CToken* aToken)
case eHTMLTag_head:
StripWSFollowingTag(theChildTag, mTokenizer, mTokenAllocator, mLineNumber);
- result = CloseContainersTo(eHTMLTag_head, PR_FALSE);
+ if (mBodyContext->LastOf(eHTMLTag_head) != kNotFound) {
+ result = CloseContainersTo(eHTMLTag_head, PR_FALSE);
+ }
mFlags &= ~NS_DTD_FLAG_HAS_EXPLICIT_HEAD;
break;