diff --git a/mozilla/htmlparser/src/COtherElements.h b/mozilla/htmlparser/src/COtherElements.h
index 02653f12a3d..fb908722f50 100644
--- a/mozilla/htmlparser/src/COtherElements.h
+++ b/mozilla/htmlparser/src/COtherElements.h
@@ -1912,10 +1912,15 @@ public:
CElement *theElement=GetElement(aTag);
if(NS_SUCCEEDED(result)) {
- nsCParserNode *theNode=(nsCParserNode*)aNode;
- CStartToken *theToken=(CStartToken*)theNode->mToken;
- if(theToken->IsEmpty() && (aTag==aContext->Last())){
- result=CElement::HandleEndToken(aNode,aTag,aContext,aSink);
+ if(aNode) {
+ nsCParserNode* theNode=(nsCParserNode*)aNode;
+ eHTMLTokenTypes theType=eHTMLTokenTypes(theNode->GetTokenType());
+ if(theType==eToken_start) {
+ CStartToken *theToken=(CStartToken*)theNode->mToken;
+ if(theToken && theToken->IsEmpty() && (aTag==aContext->Last())){
+ result=CElement::HandleEndToken(aNode,aTag,aContext,aSink);
+ }
+ }
}
}
diff --git a/mozilla/parser/htmlparser/src/COtherElements.h b/mozilla/parser/htmlparser/src/COtherElements.h
index 02653f12a3d..fb908722f50 100644
--- a/mozilla/parser/htmlparser/src/COtherElements.h
+++ b/mozilla/parser/htmlparser/src/COtherElements.h
@@ -1912,10 +1912,15 @@ public:
CElement *theElement=GetElement(aTag);
if(NS_SUCCEEDED(result)) {
- nsCParserNode *theNode=(nsCParserNode*)aNode;
- CStartToken *theToken=(CStartToken*)theNode->mToken;
- if(theToken->IsEmpty() && (aTag==aContext->Last())){
- result=CElement::HandleEndToken(aNode,aTag,aContext,aSink);
+ if(aNode) {
+ nsCParserNode* theNode=(nsCParserNode*)aNode;
+ eHTMLTokenTypes theType=eHTMLTokenTypes(theNode->GetTokenType());
+ if(theType==eToken_start) {
+ CStartToken *theToken=(CStartToken*)theNode->mToken;
+ if(theToken && theToken->IsEmpty() && (aTag==aContext->Last())){
+ result=CElement::HandleEndToken(aNode,aTag,aContext,aSink);
+ }
+ }
}
}