diff --git a/mozilla/htmlparser/src/CNavDTD.cpp b/mozilla/htmlparser/src/CNavDTD.cpp
index 61e4b8718c4..71c5d8895b3 100644
--- a/mozilla/htmlparser/src/CNavDTD.cpp
+++ b/mozilla/htmlparser/src/CNavDTD.cpp
@@ -3291,7 +3291,11 @@ nsresult CNavDTD::CloseContainersTo(PRInt32 anIndex,eHTMLTags aTarget, PRBool aC
#ifdef ENABLE_RESIDUALSTYLE
PRBool theTagIsStyle=nsHTMLElement::IsResidualStyleTag(theTag);
- PRBool theStyleDoesntLeakOut = gHTMLElements[aTarget].HasSpecialProperty(kNoStyleLeaksOut);
+ // If the current tag cannot leak out then we shouldn't leak out of the target - Fix 40713
+ PRBool theStyleDoesntLeakOut = gHTMLElements[theTag].HasSpecialProperty(kNoStyleLeaksOut);
+ if(!theStyleDoesntLeakOut) {
+ theStyleDoesntLeakOut = gHTMLElements[aTarget].HasSpecialProperty(kNoStyleLeaksOut);
+ }
// (aClosedByStartTag) ? gHTMLElements[aTarget].HasSpecialProperty(kNoStyleLeaksOut)
// : gHTMLElements[theParent].HasSpecialProperty(kNoStyleLeaksOut);
diff --git a/mozilla/htmlparser/src/nsElementTable.cpp b/mozilla/htmlparser/src/nsElementTable.cpp
index 3c0bbdf2a4c..f0a3ef0e52a 100644
--- a/mozilla/htmlparser/src/nsElementTable.cpp
+++ b/mozilla/htmlparser/src/nsElementTable.cpp
@@ -372,7 +372,7 @@ void InitializeElementTable(void) {
/*rootnodes,endrootnodes*/ &gInTable,&gInTable,
/*autoclose starttags and endtags*/ &gCaptionAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, kFlowEntity, kSelf,
- /*special props, prop-range*/ kNoPropagate,kDefaultPropRange,
+ /*special props, prop-range*/ (kNoPropagate|kNoStyleLeaksOut),kDefaultPropRange,
/*special parents,kids,skip*/ &gInTable,0,eHTMLTag_unknown);
Initialize(
@@ -1112,7 +1112,7 @@ void InitializeElementTable(void) {
/*rootnodes,endrootnodes*/ &gTableRootTags,&gTableRootTags,
/*autoclose starttags and endtags*/ 0,&gTableCloseTags,0,0,
/*parent,incl,exclgroups*/ kBlock, kNone, (kSelf|kInlineEntity),
- /*special props, prop-range*/ (kOmitWS|kBadContentWatch|kNoStyleLeaksIn|kNoStyleLeaksOut), 2,
+ /*special props, prop-range*/ (kOmitWS|kBadContentWatch|kNoStyleLeaksIn), 2,
/*special parents,kids,skip*/ 0,&gTableKids,eHTMLTag_unknown);
Initialize(
diff --git a/mozilla/parser/htmlparser/src/CNavDTD.cpp b/mozilla/parser/htmlparser/src/CNavDTD.cpp
index 61e4b8718c4..71c5d8895b3 100644
--- a/mozilla/parser/htmlparser/src/CNavDTD.cpp
+++ b/mozilla/parser/htmlparser/src/CNavDTD.cpp
@@ -3291,7 +3291,11 @@ nsresult CNavDTD::CloseContainersTo(PRInt32 anIndex,eHTMLTags aTarget, PRBool aC
#ifdef ENABLE_RESIDUALSTYLE
PRBool theTagIsStyle=nsHTMLElement::IsResidualStyleTag(theTag);
- PRBool theStyleDoesntLeakOut = gHTMLElements[aTarget].HasSpecialProperty(kNoStyleLeaksOut);
+ // If the current tag cannot leak out then we shouldn't leak out of the target - Fix 40713
+ PRBool theStyleDoesntLeakOut = gHTMLElements[theTag].HasSpecialProperty(kNoStyleLeaksOut);
+ if(!theStyleDoesntLeakOut) {
+ theStyleDoesntLeakOut = gHTMLElements[aTarget].HasSpecialProperty(kNoStyleLeaksOut);
+ }
// (aClosedByStartTag) ? gHTMLElements[aTarget].HasSpecialProperty(kNoStyleLeaksOut)
// : gHTMLElements[theParent].HasSpecialProperty(kNoStyleLeaksOut);
diff --git a/mozilla/parser/htmlparser/src/nsElementTable.cpp b/mozilla/parser/htmlparser/src/nsElementTable.cpp
index 3c0bbdf2a4c..f0a3ef0e52a 100644
--- a/mozilla/parser/htmlparser/src/nsElementTable.cpp
+++ b/mozilla/parser/htmlparser/src/nsElementTable.cpp
@@ -372,7 +372,7 @@ void InitializeElementTable(void) {
/*rootnodes,endrootnodes*/ &gInTable,&gInTable,
/*autoclose starttags and endtags*/ &gCaptionAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, kFlowEntity, kSelf,
- /*special props, prop-range*/ kNoPropagate,kDefaultPropRange,
+ /*special props, prop-range*/ (kNoPropagate|kNoStyleLeaksOut),kDefaultPropRange,
/*special parents,kids,skip*/ &gInTable,0,eHTMLTag_unknown);
Initialize(
@@ -1112,7 +1112,7 @@ void InitializeElementTable(void) {
/*rootnodes,endrootnodes*/ &gTableRootTags,&gTableRootTags,
/*autoclose starttags and endtags*/ 0,&gTableCloseTags,0,0,
/*parent,incl,exclgroups*/ kBlock, kNone, (kSelf|kInlineEntity),
- /*special props, prop-range*/ (kOmitWS|kBadContentWatch|kNoStyleLeaksIn|kNoStyleLeaksOut), 2,
+ /*special props, prop-range*/ (kOmitWS|kBadContentWatch|kNoStyleLeaksIn), 2,
/*special parents,kids,skip*/ 0,&gTableKids,eHTMLTag_unknown);
Initialize(