Crimson (the version issued with JDK 1.4) crashes as follows: java.lang.InternalError: fillbuf at org.apache.crimson.parser.InputEntity.parsedContent (InputEntity.java:545) at org.apache.crimson.parser.Parser2.content(Parser2.java:1826) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507) at org.apache.crimson.parser.Parser2.content(Parser2.java:1779) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507) at org.apache.crimson.parser.Parser2.content(Parser2.java:1779) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507) at org.apache.crimson.parser.Parser2.content(Parser2.java:1779) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507) at org.apache.crimson.parser.Parser2.content(Parser2.java:1779) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507) at org.apache.crimson.parser.Parser2.content(Parser2.java:1779) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507) at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:500) at org.apache.crimson.parser.Parser2.parse(Parser2.java:305) at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442) at net.sf.saxon.om.Builder.build(Builder.java:264) at net.sf.saxon.Controller.build(Controller.java:1122) at net.sf.saxon.Controller.transform(Controller.java:1090) at net.sf.saxon.Transform.processFile(Transform.java:536) at net.sf.saxon.Transform.doMain(Transform.java:349) at net.sf.saxon.Transform.main(Transform.java:64) Exception in thread "main" Last few SAX events reported were: ContentEmitter#startElement ,code,code at line 11201 characters (2) characters (1) End element code characters (71) ContentEmitter#startElement ,code,code at line 11202 The contents of the XML around this line were: 11200: <p>If the text node contains the sequence of characters 11201: <code>]]></code>, then the currently open CDATA section should be 11202: closed following the <code>]]</code> and a new CDATA section opened 11203: before the <code>></code>.</p> This has parsed successfully in the past; the changes made to the file before the failure were in an unrelated part of the document. So I guess there's some buffer boundary condition that's been hit, perhaps the "]]" spanning the end of a bufferful of data while the parser was checking for "]]>". Adding some dummy text before the paragraph above fixed the problem. Michael Kay