diff --git a/mozilla/htmlparser/src/nsHTMLTokens.cpp b/mozilla/htmlparser/src/nsHTMLTokens.cpp
index dd1c80441a1..b6376413c03 100644
--- a/mozilla/htmlparser/src/nsHTMLTokens.cpp
+++ b/mozilla/htmlparser/src/nsHTMLTokens.cpp
@@ -704,9 +704,17 @@ nsresult ConsumeComment(PRUnichar aChar, nsScanner& aScanner,nsString& aString)
nsAutoString temp("");
while((kNotFound==findpos) && (NS_OK==result)) {
result=aScanner.ReadUntil(temp,kMinus,PR_TRUE);
+
if(NS_OK==result) {
- result=aScanner.ReadWhile(temp,gEdibles,PR_TRUE,PR_TRUE); //get all available '---'
+ result=aScanner.ReadWhile(temp,gMinus,PR_TRUE,PR_FALSE); //get all available '---'
+ aScanner.SkipWhitespace(); //but skip terminating whitespace...
}
+
+ if(NS_OK==result) {
+ result=aScanner.GetChar(aChar);
+ temp+=aChar;
+ }
+
findpos=temp.RFind("-->");
if(kNotFound==findpos)
findpos=temp.RFind("!>");
diff --git a/mozilla/parser/htmlparser/src/nsHTMLTokens.cpp b/mozilla/parser/htmlparser/src/nsHTMLTokens.cpp
index dd1c80441a1..b6376413c03 100644
--- a/mozilla/parser/htmlparser/src/nsHTMLTokens.cpp
+++ b/mozilla/parser/htmlparser/src/nsHTMLTokens.cpp
@@ -704,9 +704,17 @@ nsresult ConsumeComment(PRUnichar aChar, nsScanner& aScanner,nsString& aString)
nsAutoString temp("");
while((kNotFound==findpos) && (NS_OK==result)) {
result=aScanner.ReadUntil(temp,kMinus,PR_TRUE);
+
if(NS_OK==result) {
- result=aScanner.ReadWhile(temp,gEdibles,PR_TRUE,PR_TRUE); //get all available '---'
+ result=aScanner.ReadWhile(temp,gMinus,PR_TRUE,PR_FALSE); //get all available '---'
+ aScanner.SkipWhitespace(); //but skip terminating whitespace...
}
+
+ if(NS_OK==result) {
+ result=aScanner.GetChar(aChar);
+ temp+=aChar;
+ }
+
findpos=temp.RFind("-->");
if(kNotFound==findpos)
findpos=temp.RFind("!>");