| Index: Source/core/xml/parser/XMLDocumentParser.cpp | 
| diff --git a/Source/core/xml/parser/XMLDocumentParser.cpp b/Source/core/xml/parser/XMLDocumentParser.cpp | 
| index 2e5fd031092d9b9d1f4d5045e757a87dedce55fe..f80d85faa6b0c9f08581154c72687bcdeb14e73b 100644 | 
| --- a/Source/core/xml/parser/XMLDocumentParser.cpp | 
| +++ b/Source/core/xml/parser/XMLDocumentParser.cpp | 
| @@ -424,7 +424,9 @@ void XMLDocumentParser::end() | 
| if (m_parserPaused) | 
| return; | 
|  | 
| -    if (m_sawError) { | 
| +    // stopParsing() calls insertErrorMessageBlock() if there was a parsing | 
| +    // error. Avoid showing the error message block twice. | 
| +    if (m_sawError && !isStopped()) { | 
| insertErrorMessageBlock(); | 
| } else { | 
| exitText(); | 
| @@ -1553,6 +1555,8 @@ TextPosition XMLDocumentParser::textPosition() const | 
|  | 
| void XMLDocumentParser::stopParsing() | 
| { | 
| +    if (m_sawError) | 
| +        insertErrorMessageBlock(); | 
| DocumentParser::stopParsing(); | 
| if (context()) | 
| xmlStopParser(context()); | 
|  |