diff --git a/xdocs/sources/entities.ent b/xdocs/sources/entities.ent
index 5a3c740..f5f428a 100644
--- a/xdocs/sources/entities.ent
+++ b/xdocs/sources/entities.ent
@@ -1,5 +1,6 @@
 <?xml encoding="US-ASCII"?>
 
+<!ENTITY xslt "Xalan">
 <!ENTITY xslt4j "Xalan-Java">
 <!ENTITY xslt4j2 "Xalan-Java 2">
 <!ENTITY xslt4j-dist "xalan-j_2_3_0">
diff --git a/xdocs/sources/xalan/dtm.xml b/xdocs/sources/xalan/dtm.xml
index 7974fb6..4aace2b 100644
--- a/xdocs/sources/xalan/dtm.xml
+++ b/xdocs/sources/xalan/dtm.xml
@@ -79,7 +79,7 @@
   <li>DOM2DTM (which provides DTM access to an existing DOM)</li>
 </ul> 
   <p>Both DTMs can be built incrementally (see <link anchor="incremental">incremental transforms</link>). When operating incrementally, the
-  DTM allows the Xalan processor to begin reading the DTM and performing the transformation while the DTM is still being assembled 
+  DTM allows the &xslt4j; processor to begin reading the DTM and performing the transformation while the DTM is still being assembled 
   (for example, while the parser is still parsing the XML source), and attempts to do only as much work as is needed to support the
   read requests actually made by the XPath or XSLT processor.</p>
   <p>For the convenience of user-written extensions, a proxy mechanism presents the contents of the DTM as a read-only subset of the DOM.</p>
diff --git a/xdocs/sources/xalan/extensions.xml b/xdocs/sources/xalan/extensions.xml
index 52dbf99..7a9e772 100644
--- a/xdocs/sources/xalan/extensions.xml
+++ b/xdocs/sources/xalan/extensions.xml
@@ -135,7 +135,7 @@
 <note>The extension function could include both numdays and multiplier as arguments, thus bypassing the need for the extension element, but the purpose here is to illustrate the usage pattern for extension elements.</note>
 <p>As you review this stylesheet, please note the following:</p>
 <ol>
-	  <li>The declaration of the Xalan lxslt namespace, which provides support for the component and
+	  <li>The declaration of the &xslt; lxslt namespace, which provides support for the component and
      component/script elements:<br/><br/>
     <code>xmlns:lxslt="http://xml.apache.org/xslt"</code><br/><br/></li>
     <li>The declaration of a namespace for this extension:<br/><br/>
@@ -499,7 +499,7 @@
 </s3>
 </s2><anchor name="java-namespace"/>
 <s2 title="Alternative: using the abbreviated syntax for extensions implemented in Java">
-<p>For extension functions and extension elements implemented in Java, Xalan permits an abbreviated syntax. When you use the abbreviated syntax, you do not use an lxslt:component to designate the functions.</p>
+<p>For extension functions and extension elements implemented in Java, &xslt4j; permits an abbreviated syntax. When you use the abbreviated syntax, you do not use an lxslt:component to designate the functions.</p>
 <p>The abbreviated syntax supports the use of extension functions and extension elements implemented in Java. You cannot use this syntax with extensions implemented in JavaScript or another scripting language.</p>
 <anchor name="java-namespace-declare"/>
 <s3 title="Declare the namespace">
diff --git a/xdocs/sources/xalan/extensionslib.xml b/xdocs/sources/xalan/extensionslib.xml
index df67973..3908b7f 100644
--- a/xdocs/sources/xalan/extensionslib.xml
+++ b/xdocs/sources/xalan/extensionslib.xml
@@ -59,7 +59,7 @@
 <s1 title="Extensions library">
 <ul>
 <li><link anchor="intro">Introduction</link></li>
-<li><link anchor="xalanns">Xalan namespace</link></li>
+<li><link anchor="xalanns">&xslt; namespace</link></li>
 <li><link anchor="redirect">Redirect</link></li>
 <li><link anchor="nodeset">nodeset</link></li>
 <li><link anchor="intersection">intersection</link></li>
@@ -82,11 +82,11 @@
 <s2 title= "Introduction">
 <p>Extension elements and functions provide a powerful mechanism
 for extending and simplifying what you can do with an XLST processor like
-Xalan. With input and contributions from the XML open-source developer community, we are working on placing the most useful
+&xslt;. With input and contributions from the XML open-source developer community, we are working on placing the most useful
 extensions in an extensions library distributed with &xslt4j;. If you have ideas and/or contributions you would like to make, please email us at the <human-resource-ref idref="xalandev"/>.</p>
 </s2><anchor name="xalanns"/>
-<s2 title="Xalan namespace">
-<p>Where it makes sense, we are placing the new Xalan extensions in the org.apache.xalan.lib.Extensions class and we have defined a namespace for this class:</p>
+<s2 title="&xslt; namespace">
+<p>Where it makes sense, we are placing the new &xslt; extensions in the org.apache.xalan.lib.Extensions class and we have defined a namespace for this class:</p>
 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>http://xml.apache.org/xalan</code></p>
 <p>If you are calling &xslt4j;-supplied extensions, we recommend that you define this namespace in your stylesheet element, and call the extension using the namespace prefix that you have associated with that namespace. That way, if we later reorganize how the &xslt4j;-supplied extensions are stored, you won't have to modify your stylesheet.</p>
 <p>For an example that uses this namespace, see <link anchor="ex-nodeset">Example with the nodeset extension function</link>.</p>
@@ -454,7 +454,7 @@
 <s3 title="Variation: using pipeDocument in an empty stylesheet">
 <p>Suppose you want to pipe a document through a series of transformations. You can use the pipeDocument extension element
 to perform this operation by placing the extension element in an otherwise empty stylesheet.</p>
-<p>The following stylesheet is used to merge the Xalan documents into a book (the first transformation), and transform the book
+<p>The following stylesheet is used to merge the &xslt; documents into a book (the first transformation), and transform the book
 into a tree of formatting objects, which can then be used to generate a PDF file. This transformation is invoked as follows:</p>
 <p><code>java org.apache.xalan.xslt.Process -in printbook.xml</code><br/>
 <code> -param source printbook.xml</code><br/>
diff --git a/xdocs/sources/xalan/faq.xml b/xdocs/sources/xalan/faq.xml
index cfa58bc..e030a1c 100644
--- a/xdocs/sources/xalan/faq.xml
+++ b/xdocs/sources/xalan/faq.xml
@@ -18,7 +18,7 @@
   
   <faq title="Compatibility with &xslt4j; version 1">
    <q>How do I run applications that use the &xslt4j; version 1 API with &xslt4j2;</q>
-   <a><p>The Xalan-Java 1 compatibility API has been deprecated and now purged, so you must use the &xslt4j2; API. We strongly encourage you to
+   <a><p>The &xslt4j; 1 compatibility API has been deprecated and now purged, so you must use the &xslt4j2; API. We strongly encourage you to
    use the JAVAX 1.1/TrAX API. For more information ,see the next FAQ.</p></a>
   </faq>
     
@@ -46,20 +46,20 @@
     another transformation</link>.<anchor name="jdk13"/></p></a>
   </faq>
   
-  <faq title="Issues running Xalan on JDK 1.3">
+  <faq title="Issues running &xslt4j; on JDK 1.3">
   <q>I'm having a problem building or running &xslt4j; on the JDK 1.3.</q>
   <a><p>The JDK 1.3 automatically places everything in the lib/ext directory in front of everything you place on the classpath. If this directory contains a version of DOM, JAXP, or Xerces that predates the &xslt4j; distribution you are using, you may have problems!</p> 
-<p>The IBM JDK 1.3 includes an earlier version of xerces.jar in the lib/ext directory, a version that does not implement the JAXP 1.1 interfaces and therefore does not work with the current Xalan release. Accordingly, you must either purge the xerces.jar that is in that directory or replace it with the &xml4j-jar; that is included with the Xalan distribution.</p>
+<p>The IBM JDK 1.3 includes an earlier version of xerces.jar in the lib/ext directory, a version that does not implement the JAXP 1.1 interfaces and therefore does not work with the current &xslt4j; release. Accordingly, you must either purge the xerces.jar that is in that directory or replace it with the &xml4j-jar; that is included with the &xslt4j; distribution.</p>
 <p>The SUN JDK 1.3 includes a pre-1.1 version of the JAXP in crimson.jar. Either purge the crimson.jar in that directory or overwrite it with a newer crimson.jar that includes and implements the JAXP 1.1 interfaces.</p></a>  
   </faq>
   <faq title="a &quot;DOM006 Hierarchy request error&quot;">
   <q>Why do I get a "DOM006 Hierarchy request error" when I try to transform into a DOM Document node?</q>
   <a>
-  <p>This error occurs when Xalan tries to add a Node to a Document node where it isn't allowed. For example, attempting to add non-whitespace
+  <p>This error occurs when &xslt4j; tries to add a Node to a Document node where it isn't allowed. For example, attempting to add non-whitespace
   text to the DOM Document node produces this error.</p>
    <p>The error can also occur when a Document node is created with the DOMImplementation createDocument() method, which takes a qualified name
-    as an argument and creates an element node.  If you then pass the returned Document node to Xalan, you get a "DOM006 Hierarchy request
-    error" when Xalan tries to add a second element to the Document node. The solution is to either use the DocumentBuilder newDocument() method
+    as an argument and creates an element node.  If you then pass the returned Document node to &xslt4j;, you get a "DOM006 Hierarchy request
+    error" when &xslt4j; tries to add a second element to the Document node. The solution is to either use the DocumentBuilder newDocument() method
     to create a Document that does not contain an element node, or use a DocumentFragment. It should be noted that the 
     DocumentBuilder newDocument() method is "Non-preferred" according to the JAXP 1.1 documentation.</p>
   </a>
@@ -104,14 +104,11 @@
     <li>To run extensions (including the samples in samples/extensions), bsf.jar, and bsfengines.jar must be on the 
     classpath. To run extensions implemented in JavaScript, js.jar must also be on the classpath. For information on what 
     you need to run extensions implemented in other scripting languages, see <link idref="extensions"
-    anchor="supported-lang">Supported languages</link>.<br/><br/></li>
-    <li>To run applications that use the &xslt4j; version 1 API, you must put xalanj1compat.jar on the classpath, recompile the application,
-    and be sure xalanj1compat.jar is on the classpath at run time (see <link idref="usagepatterns" anchor="compat">Using the &xslt4j; version 1
-    API)</link>.</li>
+    anchor="supported-lang">Supported languages</link>.</li>
     </ol>
     <p>For more information, see <link idref="getstarted" anchor="classpath">Setting up the system classpath</link>.</p>
     <p><anchor name="environmentcheck"/></p>
-    <p><em>Using the EnvironmentCheck utility:</em> To help diagnose classpath problems, try running Xalan's environment checking utility, checked in at 
+    <p><em>Using the EnvironmentCheck utility:</em> To help diagnose classpath problems, try running &xslt4j;'s environment checking utility, checked in at 
     xml-xalan/java/src/org/apache/xalan/xslt/EnvironmentCheck.</p>
     <p>You can run this utility from the command line as follows:</p>
     <p><code>java org.apache.xalan.xslt.EnvironmentCheck [-out outFile]</code></p>
@@ -154,12 +151,12 @@
     <faq title="Using the 'signature' file to verify a download">
       <q>How do I use the "signature" file to verify my download?</q>
       <a>
-        <p>For each Xalan download file in <resource-ref idref="xslt4j-distdir"/>, there is a corresponding signature file. 
+        <p>For each &xslt4j; download file in <resource-ref idref="xslt4j-distdir"/>, there is a corresponding signature file. 
         The signature file for xalan-j_2_0_1.tar.gz, for example, is xalan-j_2_0_1.tar.gz.sig.</p>
         <p>The .sig files are PGP signatures of the actual .zip or .tar.gz
         download files.  You can use these files to verify the authenticiy of the download. You do not need the .sig file to 
         use the corresponding donwload file.</p>
-        <p>To check the authenticity of a Xalan distribution, you need a copy of
+        <p>To check the authenticity of a &xslt4j; distribution, you need a copy of
         PGP which is available in a number of licenses, including some free
         non-commercial licenses, either from an mit.edu site or on
         the pgp.com site. Once you have a version of PGP installed, you
@@ -183,8 +180,8 @@
     <q>My servlet cannot find classes that implement extension functions or elements. What can I do?</q>
     <a>
     <p>If you install xalan.jar in the servlet engine's lib directory (e.g., tomcat/lib), as opposed to the servlet's 
-    lib directory, then the Xalan classes are loaded by a classloader that does not see the classes in the servlet's
-    classloader (i.e., the extension classes, if you placed them there). The Xalan classes try to load the extension 
+    lib directory, then the &xslt4j; classes are loaded by a classloader that does not see the classes in the servlet's
+    classloader (i.e., the extension classes, if you placed them there). The &xslt4j; classes try to load the extension 
     classes using their own classloader, and that attempt fails.</p>
     <p>Workaround: place xalan.jar in the servlet's lib directory and NOT in the servlet engine's lib directory. 
     Another workaround is to place the extension classes also in the servlet engine's lib directory, but you
@@ -207,7 +204,7 @@
   <p>SAX1 should not be on your classpath. The SAX1 interfaces and implementations of the SAX1 SAXPparser
   are not namespace aware.</p>
   <p>To help diagnose your classpath, you can use the <link anchor="environmentcheck">EnvironmentCheck
-  utility</link>. If you are running under JDK 1.3, see <link anchor="jdk13">Issues running Xalan on JDK
+  utility</link>. If you are running under JDK 1.3, see <link anchor="jdk13">Issues running &xslt4j; on JDK
   1.3</link>. If you are running a servlet, make sure the servlet engine is not placing SAX1 on the
   classpath.</p>
   <p><em>Setting the parser to be namespace aware</em></p>
@@ -284,13 +281,13 @@
   return locator;
 }</source>
 
-<note><em>Xalan exception handling:</em>  The exception architecture in Xalan and with transforms in general is tricky because of multiple layers of exception handling, involving movement back and forth between SAX and Transformer exceptions and across pipes. Xalan often uses a WrappedRuntimeException to throw over many layers of checked exceptions, in order not to have every possible checked exception be declared for every function in the stack, which means it has to catch this exception at the upper levels and unwrap the exception to pass it on as a TransformerException.
+<note><em>&xslt4j; exception handling:</em>  The exception architecture in &xslt4j; and with transforms in general is tricky because of multiple layers of exception handling, involving movement back and forth between SAX and Transformer exceptions and across pipes. &xslt4j; often uses a WrappedRuntimeException to throw over many layers of checked exceptions, in order not to have every possible checked exception be declared for every function in the stack, which means it has to catch this exception at the upper levels and unwrap the exception to pass it on as a TransformerException.
 <br/><br/>
-A JAXP 1.1 TransformerException often wraps another exception. Two of the TransformerException structures that are frequently used to construct contained exceptions in JAXP 1.1 do not set the locator.  The locator is not set because we don't know the type of exception that the Throwable argument represents.  The solution is to chase up the contained exceptions to find the root cause, which will usually have a location set for you.  This can be somewhat tricky, as not all the exceptions may be TransformerExceptions.  A good sample is in the DefaultHandler static printLocation() method, which the Xalan command-line processor uses to report errors. You can also roll your own functions along the lines of the getRootSourceLocator() example above.</note>
+A JAXP 1.1 TransformerException often wraps another exception. Two of the TransformerException structures that are frequently used to construct contained exceptions in JAXP 1.1 do not set the locator.  The locator is not set because we don't know the type of exception that the Throwable argument represents.  The solution is to chase up the contained exceptions to find the root cause, which will usually have a location set for you.  This can be somewhat tricky, as not all the exceptions may be TransformerExceptions.  A good sample is in the DefaultHandler static printLocation() method, which the &xslt4j; command-line processor uses to report errors. You can also roll your own functions along the lines of the getRootSourceLocator() example above.</note>
 </a>
 </faq>
 <faq title="StackOverflowError with recursive stylesheet">
-<q>Xalan dies with a java.lang.StackOverflowError when I run a deeply recursive stylesheet. The same stylesheet worked fine in the past (or on other machines). What's happening?</q>
+<q>&xslt4j; dies with a java.lang.StackOverflowError when I run a deeply recursive stylesheet. The same stylesheet worked fine in the past (or on other machines). What's happening?</q>
 <a>
 <p>That may not be our fault.  As of JDK 1.3.x, many Java Virtual Machine publishers reduced the default size of a thread's call stack from 1MB to 256KB. This allows more threads to run simultaneously, but it means that each thread is more limited in how deeply its function calls can be nested. </p>
 
diff --git a/xdocs/sources/xalan/getstarted.xml b/xdocs/sources/xalan/getstarted.xml
index a7bb6cd..8747a14 100644
--- a/xdocs/sources/xalan/getstarted.xml
+++ b/xdocs/sources/xalan/getstarted.xml
@@ -11,7 +11,7 @@
 </ul>
 <anchor name="download"/>
 <s2 title="Downloading what you need">
-<p>To use Xalan, you need the following:</p>
+<p>To use &xslt4j;, you need the following:</p>
 <ul>
 <li>The JDK or JRE 1.2.2, or 1.3.x</li>
 <li>xalan.jar</li>
diff --git a/xdocs/sources/xalan/index.xml b/xdocs/sources/xalan/index.xml
index 0c01eb4..09ba610 100644
--- a/xdocs/sources/xalan/index.xml
+++ b/xdocs/sources/xalan/index.xml
@@ -59,12 +59,12 @@
 <s1 title="&xslt4j-current;">
 <!--note>A later Developer release has been posted in the <resource-ref idref="xslt4j-distdir"/>. For the changes that have occurred since &xslt4j-current;, consult the xml-xalan-cvs@apache.org mailing list, or download the release and consult the release notes.</note-->
   <s2 title="What is it?">
-    <p>Xalan is an XSLT processor for transforming XML documents into HTML, text, or other XML document types. It implements the
+    <p>&xslt4j; is an XSLT processor for transforming XML documents into HTML, text, or other XML document types. It implements the
      W3C Recommendations for XSL Transformations (XSLT) and the XML Path Language (XPath). It can be used from the command line,
      in an applet or a servlet, or as a module in other program.</p>
   </s2>
   <s2 title="I've heard of &xslt4j;, but what is version 2?">
-    <p>&xslt4j; version 2 recasts Xalan as an implementation of the <link idref="trax">TRaX (Transformation API for XML)</link> interfaces, part of the <resource-ref idref="jaxp11"/>. TRaX provides a
+    <p>&xslt4j; version 2 recasts &xslt; as an implementation of the <link idref="trax">TRaX (Transformation API for XML)</link> interfaces, part of the <resource-ref idref="jaxp11"/>. TRaX provides a
     modular framework and a standard API for performing XML transformations, and it utilizes system properties to determine which Transformer and which XML parser to use.</p>
      <p>&xslt4j; version 2 also builds on <resource-ref idref="sax2"/>, <resource-ref idref="dom2"/>, and the XML parser API in
      <resource-ref idref="jaxp"/>.</p>
@@ -93,8 +93,8 @@
   </s2>
   
   <s2 title="Where do I get Xerces?">
-    <p>The Xalan download includes &xml4j-jar; from &xml4j-used;. In conjunction with xml-apis.jar, this is all you need to run Xalan with 
-    the Xerces XML parser. You can, however, download the complete Xerces binary or source distribution from the 
+    <p>The &xslt4j; download includes &xml4j-jar; from &xml4j-used;. In conjunction with xml-apis.jar, this is all you need to run &xslt4j; with 
+    the &xml4j; XML parser. You can, however, download the complete Xerces binary or source distribution from the 
     <resource-ref idref="xml4j-distdir"/>.</p>
     <note>If you plan to use a different XML parser, see <link idref="usagepatterns" anchor="plug">Plugging in a Transformer
      and XML parser</link>.</note> 
@@ -104,8 +104,8 @@
     href="http://www.ibm.com/java/jdk">ibm.com/java/jdk/</jump> or <jump href="http://www.java.sun.com">java.sun.com</jump>.</p> 
   </s2>  
     <s2 title="For more information...">
-    <p>For more information, go to <link idref="overview">Xalan Overview</link> and <link idref="getstarted">Getting
-    Started</link>. All of the Xalan documentation on this website is included in the Xalan download, as are a number of
+    <p>For more information, go to <link idref="overview">&xslt4j; Overview</link> and <link idref="getstarted">Getting
+    Started</link>. All of the &xslt4j; documentation on this website is included in the &xslt4j; download, as are a number of
     <link idref="samples">Samples</link> to help you start using &xslt4j2; to transform XML documents.</p>
   </s2>  
 </s1> 
\ No newline at end of file
diff --git a/xdocs/sources/xalan/readme.xml b/xdocs/sources/xalan/readme.xml
index 1b32a2c..842be1c 100644
--- a/xdocs/sources/xalan/readme.xml
+++ b/xdocs/sources/xalan/readme.xml
@@ -72,8 +72,8 @@
     <li><link anchor="done">Changes since version 2.2</link></li>
     <li><link anchor="other">Other points of interest</link></li>
     <li><link anchor="bugs">Bugs</link></li>
-    <li><link anchor="status">Version of Xerces to use</link></li>
-    <li><link anchor="developer-list">Xalan developers</link></li>
+    <li><link anchor="status">Version of &xml4j; to use</link></li>
+    <li><link anchor="developer-list">&xslt4j; developers</link></li>
    </ul>
      <anchor name="done"/>
      <s3 title="Changes since &xslt4j; 2.2">
@@ -97,7 +97,7 @@
      <li>If an attempt is made to coerce a different namespace onto a prefix already in use in xsl:attribute, the attribute will come out 
      in the wrong namespace. Workaround: either provide an NCName instead of a QName for the attribute, or provide a QName with a prefix not
      used elsewhere.<br/><br/></li>
-     <li>Handling xsl:namespace-alias declarations: In release 2.0.D01, we reported the need to do some research concerning exactly how Xalan
+     <li>Handling xsl:namespace-alias declarations: In release 2.0.D01, we reported the need to do some research concerning exactly how &xslt;
      should handle xsl:namespace-alias declarations. As a result of discussions among members of the W3C Working Group on XSL, we have reached a
      more precise consensus on how namespaces should be represented when an xsl:namespace-alias declaration is in effect.<br/><br/>
      If a literal result element has a namespace prefix, the prefix will be preserved and the namespace URI of the element will be as
@@ -138,25 +138,17 @@
      <p>We strongly encourage you write patches for problems you find and submit them to
       xalan-dev@xml.apache.org. We review the patches we receive to make sure they do not break something else, and (assuming they 
      do not) include them in our next release. In the interest of fixing bugs, adding enhancements, and addressing outstanding design
-     issues, we sincerely want (and need!) your active participation in the ongoing development of Xalan.</p>
+     issues, we sincerely want (and need!) your active participation in the ongoing development of &xslt;.</p>
      </s3>     
      <anchor name="status"/>
      <s3 title="Version of Xerces to use"> 
        <p>The &xslt4j-current; has been tested with &xml4j-used;. &download; For information about including &xml4j-jar; on the system class path, see <link idref="getstarted" anchor="classpath">Setting up the system class path</link>.</p>
        <note>You may also use &xslt4j-current; for prototyping or beta testing with &xml4j; 2.0.0.beta3. <em>You may not use the 
        <link idref="usagepatterns" anchor="compat">&xslt4j; version 1 API (deprecated)</link> with &xml4j; 2.0.0.beta3.</em></note>
-       <p><em>Important</em> You may experience unpredictable anomalies if your Xalan and Xerces builds are not in synch. If you download an update to Xalan, check the release notes to determine which version of Xerces you should use.</p>
-       <note>You can use Xalan with other XML parsers that implement the <resource-ref idref="jaxp"/>. See 
+       <p><em>Important</em> You may experience unpredictable anomalies if your &xslt4j; and &xml4j; builds are not in synch. If you download an update to &xslt4j;, check the release notes to determine which version of &xml4j; you should use.</p>
+       <note>You can use &xslt4j; with other XML parsers that implement the <resource-ref idref="jaxp"/>. See 
        <link idref="usagepatterns" anchor="plug">Plugging in the Transformer and XML parser</link>.</note>
      </s3>
-     <anchor name="to-do"/>
-     <s3 title="To-do tasks">
-       <p>For a list of goals, tasks, and target dates for completion, see <jump href="todo.html">Xalan-Java Version 2: Things To Do</jump>. 
-       As tasks are completed, they are moved from the to-do list to 
-       <jump href="todo.html#release-date-completed">Completed</jump>.</p>
-       <p>The source document for the to-do list is an active document in the Apache CVS repository: 
-       <jump href="http://xml.apache.org/websrc/cvsweb.cgi/xml-xalan/java/todo.xml">xml-xalan/java/todo.xml</jump>.</p>
-      </s3> 
   </s2>
   <anchor name="build"/>  
   <s2 title="Build Notes">
diff --git a/xdocs/sources/xalan/usagepatterns.xml b/xdocs/sources/xalan/usagepatterns.xml
index 7dade2c..9870e39 100644
--- a/xdocs/sources/xalan/usagepatterns.xml
+++ b/xdocs/sources/xalan/usagepatterns.xml
@@ -118,7 +118,7 @@
 </s2><anchor name="plug"/>
 <s2 title="Plugging in a Transformer and XML parser">
 <p>The Java API for XML Processing interfaces enable you to isolate your application from the internal implementation details of a given Transformer, SAX parser, or DOM parser. For each of these objects, there is an abstract Factory class with a static newInstance() method that instantiates a concrete Factory which wraps the underlying implementation. These newInstance() methods use system property settings to determine which implementation to instantiate.</p>
-<p>&xslt4j; is distributed with a system property setting for the Xalan XSLT Transformer. This setting is in xalan.jar in META-INF/services (see src/META-INF/services).</p>
+<p>&xslt4j; is distributed with a system property setting for the &xslt4j; processor. This setting is in xalan.jar in META-INF/services (see src/META-INF/services).</p>
 <gloss>
   <label>System property</label>
     <item>Setting</item>
