diff --git a/xdocs/sources/xalan/contact_us.xml b/xdocs/sources/xalan/contact_us.xml
new file mode 100644
index 0000000..d386984
--- /dev/null
+++ b/xdocs/sources/xalan/contact_us.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
+<!--
+ * Copyright 2002-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+<!-- $Id$ -->
+ 
+
+<s1 title="Contact us">
+<ul>
+<li><link anchor="contact">Getting in touch</link></li>
+<li><link anchor="reporting-bugs">Reporting bugs</link></li>
+<li><link anchor="user-mailing-list">User mailing list</link></li>
+<li><link anchor="dev-maling-list">Developer mailing list</link></li>
+<li><link anchor="subscribe">Subscribe to a mailing list</link></li>
+</ul>
+
+<anchor name="contact"/>
+<s2 title="Getting in touch">
+  <p>
+    Your feedback is more than welcome. Offers of help are even more so! 
+    Perhaps you would like to 
+    take on an active role in the ongoing development, 
+    testing, and documentation of &xslt4j;?
+  </p> 
+  <p>
+    Please email your comments, questions, suggestions, 
+    and offers to join the Xalan team to <human-resource-ref idref="xalandev"/>
+    (xalan-dev@xml.apache.org).</p>
+ </s2>
+<anchor name="reporting-bugs"/>
+<s2 title="Reporting bugs">
+  <p>
+    If you need to contact the Xalan team to report a bug please see
+    this <link idref="bugreporting">bug reporting page</link>.
+  </p>
+</s2>
+
+<anchor name="user-mailing-list"/>
+<s2 title="User mailing list">
+  <p>
+    If you think you have encountered a bug, but you aren't sure because 
+    it might be a usage problem, or if you have other questions about Xalan 
+    post a note to
+    <jump href="mailto:xalan-j-users@xml.apache.org">xalan-j-users&#64;xml.apache.org</jump>
+  </p>
+  <p>
+    To view a history of posts to xalan-j-users you can go to
+    <jump href="http://marc.theaimsgroup.com/?l=xalan-j-users">xalan-j-users archives at MARC</jump>.
+   </p>
+</s2>
+
+<anchor name="dev-mailing-list"/>
+<s2 title="Developer mailing list">
+  <p>
+    The participating developers of the Xalan meet and discuss issues, 
+    code changes/additions, etc. at 
+    <jump href="mailto:xalan-dev@xml.apache.org">xalan-dev@xml.apache.org</jump>
+    To see how to subscribe or unsubscribe to this mailing list go to
+    <jump href="http://xml.apache.org/mail.html#xalan-dev">xalan-dev</jump>.
+    This mailing list pertains to both the Java and C++ versions of Xalan.
+  </p>
+  <p>
+    To view a history of posts to xalan-j-users you can go to
+    <jump href="http://marc.theaimsgroup.com/?l=xalan-j-users">xalan-j-users archives at MARC</jump>.
+   </p>
+ 
+</s2>
+<anchor name='subscribe'/>
+<s2 title="Subscribe to a mailing list">
+ <p>
+    You may want to subscribe to a mailing list before posting a note, so that if 
+    others post a response to the mailing list you will get copied.
+  </p>
+  <p>
+    To subscribe an email account to the Xalan user mailing list send a note to 
+    xalan-j-users-subscribe&#64;xml.apache.org from that account. To unsubscribe
+    do the same, except replace subscribe with unsubscribe.
+  </p>
+  <p>
+    To subscribe to the Xalan developer mailing list send a note to 
+    xalan-dev-subscribe&#64;xml.apache.org. To unsubscribe
+    do the same, except replace subscribe with unsubscribe.
+  </p>
+  <p>
+    For more information on XML related Apache mailing lists go to
+    <jump href="http://xml.apache.org/mail.html">Apache mailing lists</jump>. 
+  </p>
+  
+</s2>
+
+
+
+</s1> 
