diff --git a/src/main/scala/scala/xml/parsing/MarkupParserCommon.scala b/src/main/scala/scala/xml/parsing/MarkupParserCommon.scala
index 31d81d343..2e0568d12 100644
--- a/src/main/scala/scala/xml/parsing/MarkupParserCommon.scala
+++ b/src/main/scala/scala/xml/parsing/MarkupParserCommon.scala
@@ -63,7 +63,7 @@ private[scala] trait MarkupParserCommon extends TokenTests {
*/
def xAttributeValue(endCh: Char): String = {
val buf = new StringBuilder
- while (ch != endCh) {
+ while (ch != endCh && !eof) {
// well-formedness constraint
if (ch == '<') return errorAndResult("'<' not allowed in attrib value", "")
else if (ch == SU) truncatedError("")
diff --git a/src/test/scala/scala/xml/XMLTest.scala b/src/test/scala/scala/xml/XMLTest.scala
index 57ebf2b68..9ef204903 100644
--- a/src/test/scala/scala/xml/XMLTest.scala
+++ b/src/test/scala/scala/xml/XMLTest.scala
@@ -838,6 +838,12 @@ expected closing tag of foo
assertEquals("""""", pp.format(x))
}
+ @UnitTest( expected = classOf[scala.xml.SAXParseException] )
+ def issue35: Unit = {
+ val broken = "