This commit was manufactured by cvs2svn to create tag
'Xalan-C_1_5_1'.
diff --git a/samples/SimpleXPathAPI/SimpleXPathAPI.cpp b/samples/SimpleXPathAPI/SimpleXPathAPI.cpp
index 6dbe88d..c2c6f0a 100644
--- a/samples/SimpleXPathAPI/SimpleXPathAPI.cpp
+++ b/samples/SimpleXPathAPI/SimpleXPathAPI.cpp
@@ -19,7 +19,8 @@
 
 
 
-#include <DOMSupport/XalanDocumentPrefixResolver.hpp>
+#include <XalanDOM/XalanDocument.hpp>
+#include <XalanDOM/XalanElement.hpp>
 
 
 
@@ -34,6 +35,44 @@
 
 
 
+XALAN_USING_XALAN(XalanNode)
+XALAN_USING_XALAN(XalanElement)
+
+
+
+const XalanElement*
+getPrefixResolver(const XalanNode*	node)
+{
+	if (node == 0)
+	{
+		return 0;
+	}
+	else if (node->getNodeType() == XalanNode::ELEMENT_NODE)
+	{
+#if defined(XALAN_OLD_STYLE_CASTS)
+		return (const XalanElement*)node;
+#else
+		return static_cast<const XalanElement*>(node);
+#endif
+	}
+	else if (node->getNodeType() == XalanNode::DOCUMENT_NODE)
+	{
+		XALAN_USING_XALAN(XalanDocument)
+
+#if defined(XALAN_OLD_STYLE_CASTS)
+		return ((const XalanDocument*)node)->getDocumentElement();
+#else
+		return static_cast<const XalanDocument*>(node)->getDocumentElement();
+#endif
+	}
+	else
+	{
+		return getPrefixResolver(node->getParentNode());
+	}
+}
+
+
+
 int
 main(
 			int				argc,
@@ -68,7 +107,6 @@
 				XALAN_USING_XERCES(LocalFileInputSource)
 
 				XALAN_USING_XALAN(XalanDocument)
-				XALAN_USING_XALAN(XalanDocumentPrefixResolver)
 				XALAN_USING_XALAN(XalanDOMString)
 				XALAN_USING_XALAN(XalanNode)
 				XALAN_USING_XALAN(XalanSourceTreeInit)
@@ -96,8 +134,6 @@
 						theLiaison.parseXMLStream(theInputSource);
 				assert(theDocument != 0);
 
-				XalanDocumentPrefixResolver		thePrefixResolver(theDocument);
-
 				XPathEvaluator	theEvaluator;
 
 				// OK, let's find the context node...
@@ -106,7 +142,7 @@
 							theDOMSupport,
 							theDocument,
 							XalanDOMString(argv[2]).c_str(),
-							thePrefixResolver);
+							theDocument->getDocumentElement());
 
 				if (theContextNode == 0)
 				{
@@ -126,7 +162,7 @@
 								theDOMSupport,
 								theContextNode,
 								XalanDOMString(argv[3]).c_str(),
-								thePrefixResolver));
+								getPrefixResolver(theContextNode)));
 
 					assert(theResult.null() == false);
 
diff --git a/samples/SimpleXPathAPI/foo.xml b/samples/SimpleXPathAPI/foo.xml
index 04a6c89..14f51a8 100644
--- a/samples/SimpleXPathAPI/foo.xml
+++ b/samples/SimpleXPathAPI/foo.xml
@@ -1,13 +1,13 @@
 <?xml version="1.0"?>
-<foo:doc xmlns:foo="http://www.foo.com">
-  <foo:name first="David" last="Marston">Mr. Marston</foo:name>
-  <foo:name first="David" last="Bertoni">Mr. Bertoni</foo:name>
-  <foo:name first="Donald" last="Leslie">Mr. Leslie</foo:name>
-  <foo:name first="Emily" last="Farmer">Ms. Farmer</foo:name>
-  <foo:name first="Myriam" last="Midy">Ms. Midy</foo:name>
-  <foo:name first="Paul" last="Dick">Mr. Dick</foo:name>
-  <foo:name first="Scott" last="Boag">Mr. Boag</foo:name>
-  <foo:name first="Shane" last="Curcuru">Mr. Curcuru</foo:name>
-  <foo:name first="Joseph" last="Kesselman">Mr. Kesselman</foo:name>
-  <foo:name first="Stephen" last="Auriemma">Mr. Auriemma</foo:name>
-</foo:doc>
+<doc>
+  <name first="David" last="Marston">Mr. Marston</name>
+  <name first="David" last="Bertoni">Mr. Bertoni</name>
+  <name first="Donald" last="Leslie">Mr. Leslie</name>
+  <name first="Emily" last="Farmer">Ms. Farmer</name>
+  <name first="Myriam" last="Midy">Ms. Midy</name>
+  <name first="Paul" last="Dick">Mr. Dick</name>
+  <name first="Scott" last="Boag">Mr. Boag</name>
+  <name first="Shane" last="Curcuru">Mr. Curcuru</name>
+  <name first="Joseph" last="Kesselman">Mr. Kesselman</name>
+  <name first="Stephen" last="Auriemma">Mr. Auriemma</name>
+</doc>
\ No newline at end of file
diff --git a/src/DOMSupport/XalanDocumentPrefixResolver.cpp b/src/DOMSupport/XalanDocumentPrefixResolver.cpp
deleted file mode 100644
index 839f92b..0000000
--- a/src/DOMSupport/XalanDocumentPrefixResolver.cpp
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 1999-2003 The Apache Software Foundation.  All rights 
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer. 
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:  
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written 
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 1999, International
- * Business Machines, Inc., http://www.ibm.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-// Class header file...
-#include "XalanDocumentPrefixResolver.hpp"
-
-
-
-#include <XalanDOM/XalanAttr.hpp>
-#include <XalanDOM/XalanElement.hpp>
-#include <XalanDOM/XalanNamedNodeMap.hpp>
-
-
-
-#include <DOMSupport/DOMServices.hpp>
-
-
-
-XALAN_CPP_NAMESPACE_BEGIN
-
-
-
-XalanDocumentPrefixResolver::XalanDocumentPrefixResolver(
-			const XalanDocument*	theDocument,
-			const XalanDOMString&	theURI) :
-	m_namespaces(),
-	m_uri(theURI)
-{
-	assert(theDocument != 0);
-
-	NamespaceNodesTreeWalker	theWalker(m_namespaces);
-
-	theWalker.traverse(theDocument);
-}
-
-
-
-XalanDocumentPrefixResolver::~XalanDocumentPrefixResolver()
-{
-}
-
-
-
-const XalanDOMString*
-XalanDocumentPrefixResolver::getNamespaceForPrefix(const XalanDOMString&	prefix) const
-{
-	const NamespacesMapType::const_iterator		i = m_namespaces.find(&prefix);
-
-	if (i == m_namespaces.end())
-	{
-		return 0;
-	}
-	else
-	{
-		const AttributeVectorType&	theVector = (*i).second;
-		assert(theVector.size() > 0);
-
-		if (theVector.size() == 1)
-		{
-			assert(theVector.front() != 0);
-
-			return &(theVector.front()->getNodeValue());
-		}
-		else
-		{
-			return duplicateBinding(theVector);
-		}
-	}
-}
-
-
-
-const XalanDOMString&
-XalanDocumentPrefixResolver::getURI() const
-{
-	return m_uri;
-}
-
-
-
-const XalanDOMString*
-XalanDocumentPrefixResolver::duplicateBinding(const AttributeVectorType&	theVector) const
-{
-	assert(theVector.front() != 0);
-
-	return &(theVector.front()->getNodeValue());
-}
-
-
-
-XalanDocumentPrefixResolver::NamespaceNodesTreeWalker::NamespaceNodesTreeWalker(NamespacesMapType& 	theMap) :
-	TreeWalker(),
-	m_map(theMap)
-{
-}
-
-
-
-XalanDocumentPrefixResolver::NamespaceNodesTreeWalker::~NamespaceNodesTreeWalker()
-{
-}
-
-
-
-bool
-XalanDocumentPrefixResolver::NamespaceNodesTreeWalker::startNode(const XalanNode*	node)
-{
-	assert(node != 0);
-
-	switch(node->getNodeType())
-	{
-	case XalanNode::ELEMENT_NODE:
-		{
-			const XalanElement*	theElementNode =
-#if defined(XALAN_OLD_STYLE_CASTS)
-				(const XalanElement*)node;
-#else
-				static_cast<const XalanElement*>(node);
-#endif
-
-			const XalanNamedNodeMap* const	atts = theElementNode->getAttributes();
-			assert(atts != 0);
-
-			const unsigned int	theSize = atts->getLength();
-
-			for (unsigned int i = 0; i < theSize; ++i)
-			{
-				assert(atts->item(i) != 0 && atts->item(i)->getNodeType() == XalanNode::ATTRIBUTE_NODE);
-
-				const XalanAttr* const	theAttr =
-#if defined(XALAN_OLD_STYLE_CASTS)
-					(const XalanAttr*)atts->item(i);
-#else
-					static_cast<const XalanAttr*>(atts->item(i));
-#endif
-
-				if (DOMServices::isNamespaceDeclaration(*theAttr) == true)
-				{
-					m_map[&theAttr->getLocalName()].push_back(theAttr);
-				}
-			}
-		}
-		break;
-
-	default:
-		// Do nothing...
-		break;
-	}
-
-	return false;
-}
-
-
-
-bool
-XalanDocumentPrefixResolver::NamespaceNodesTreeWalker::startNode(XalanNode*		node)
-{
-	assert(node != 0);
-
-#if defined(XALAN_OLD_STYLE_CASTS)
-	return startNode((const XalanNode*)node);
-#else
-	return startNode(const_cast<const XalanNode*>(node));
-#endif
-}
-
-
-
-bool
-XalanDocumentPrefixResolver::NamespaceNodesTreeWalker::endNode(const XalanNode*		/* node */)
-{
-	return false;
-}
-
-
-
-bool
-XalanDocumentPrefixResolver::NamespaceNodesTreeWalker::endNode(XalanNode*	/* node */)
-{
-	return false;
-}
-
-
-
-XALAN_CPP_NAMESPACE_END
diff --git a/src/DOMSupport/XalanDocumentPrefixResolver.hpp b/src/DOMSupport/XalanDocumentPrefixResolver.hpp
deleted file mode 100644
index 82d9552..0000000
--- a/src/DOMSupport/XalanDocumentPrefixResolver.hpp
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 1999-2003 The Apache Software Foundation.  All rights 
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer. 
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:  
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written 
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 1999, International
- * Business Machines, Inc., http://www.ibm.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-#if !defined(XALANDOCUMENTPREFIXRESOLVER_HEADER_GUARD_1357924680)
-#define XALANDOCUMENTPREFIXRESOLVER_HEADER_GUARD_1357924680
-
-
-
-// Base include file.  Must be first.
-#include <DOMSupport/DOMSupportDefinitions.hpp>
-
-
-
-#include <map>
-#include <vector>
-
-
-
-#include <XalanDOM/XalanDOMString.hpp>
-
-
-
-#include <PlatformSupport/PrefixResolver.hpp>
-#include <PlatformSupport/DOMStringHelper.hpp>
-
-
-
-#include <Include/STLHelper.hpp>
-
-
-
-#include <DOMSupport/TreeWalker.hpp>
-
-
-
-XALAN_CPP_NAMESPACE_BEGIN
-
-
-
-class XalanAttr;
-class XalanDocument;
-
-
-
-class XALAN_DOMSUPPORT_EXPORT XalanDocumentPrefixResolver : public PrefixResolver
-{
-public:
-
-#if defined(XALAN_NO_STD_NAMESPACE)
-	typedef vector<const XalanNode*> 					AttributeVectorType;
-
-	typedef map<const XalanDOMString*,
-				AttributeVectorType,
-				pointer_less<XalanDOMString> >			NamespacesMapType;
-#else
-	typedef std::vector<const XalanNode*> 				AttributeVectorType;
-
-	typedef std::map<const XalanDOMString*,
-					 AttributeVectorType,
-					 pointer_less<XalanDOMString> >		NamespacesMapType;
-#endif
-
-	/**
-	 * Constructor.
-	 *
-	 * @param theDocument The XalanDocument instance to use for namespace bindings.
-	 * @param theURI The base URI for the instance.  This is rarely needed, but can be provided if the URI for the XalanDocument instance is known.
-	 */
-	XalanDocumentPrefixResolver(
-			const XalanDocument*	theDocument,
-			const XalanDOMString&	theURI = XalanDOMString());
-
-	virtual
-	~XalanDocumentPrefixResolver();
-
-
-	virtual const XalanDOMString*
-	getNamespaceForPrefix(const XalanDOMString&		prefix) const;
-
-	virtual const XalanDOMString&
-	getURI() const;
-
-	/**
-	 * A utility class to walk the XalanDocument instance and look for attribute nodes that declare namespaces.
-	 */
-	class NamespaceNodesTreeWalker : public TreeWalker
-	{
-	public:
-
-		NamespaceNodesTreeWalker(NamespacesMapType&		theMap);
-
-		virtual
-		~NamespaceNodesTreeWalker();
-
-	protected:
-
-		virtual bool
-		startNode(const XalanNode*	node);
-
-		virtual bool
-		startNode(XalanNode*	node);
-
-		virtual bool
-		endNode(const XalanNode*	node);
-
-		virtual bool
-		endNode(XalanNode*	node);
-
-	private:
-
-		NamespacesMapType&	m_map;
-	};
-
-
-protected:
-
-	/**
-	 * This function is called when more than one binding exists for a given prefix.
-	 * The default behavior uses the first binding, but a deriving class can change
-	 * that behavior by overriding.
-	 *
-	 * @param theVector The vector associated with the namespace prefix. 
-	 * @return A pointer to a const XalanDOMString containing the desired binding, or NULL.
-	 */
-	virtual const XalanDOMString*
-	duplicateBinding(const AttributeVectorType&		theVector) const;
-
-private:
-
-	NamespacesMapType		m_namespaces;
-
-	const XalanDOMString	m_uri;
-};
-
-
-
-XALAN_CPP_NAMESPACE_END
-
-
-
-#endif	// XALANDOCUMENTPREFIXRESOLVER_HEADER_GUARD_1357924680
diff --git a/src/PlatformSupport/AttributeListImpl.cpp b/src/PlatformSupport/AttributeListImpl.cpp
index 7b53dff..b87112b 100644
--- a/src/PlatformSupport/AttributeListImpl.cpp
+++ b/src/PlatformSupport/AttributeListImpl.cpp
@@ -408,9 +408,12 @@
 
 		const XMLCh* const	theNewValueEnd = AttributeVectorEntry::endArray(value) + 1;
 
+		const XMLChVectorType::size_type	theNewSize =
+						XMLChVectorType::size_type(theNewValueEnd - value);
+
 		// If necessary, create the a new vector and swap them.  Otherwise,
 		// just copy the new data in.
-		if ((*i)->m_Value.capacity() < XMLChVectorType::size_type(theNewValueEnd - value))
+		if ((*i)->m_Value.capacity() < theNewSize)
 		{
 			XMLChVectorType		theNewValue(value, theNewValueEnd);
 
@@ -418,6 +421,8 @@
 		}
 		else
 		{
+			(*i)->m_Value.resize(theNewSize);
+
 			copy(value, theNewValueEnd, (*i)->m_Value.begin());
 		}
 	}
diff --git a/src/PlatformSupport/DOMStringHelper.cpp b/src/PlatformSupport/DOMStringHelper.cpp
index 690828a..bc801db 100644
--- a/src/PlatformSupport/DOMStringHelper.cpp
+++ b/src/PlatformSupport/DOMStringHelper.cpp
@@ -1328,7 +1328,7 @@
 				theInputEnd,
 				theOutputIterator,
 #if defined(XALAN_NON_ASCII_PLATFORM)
-				DecimalNumberTranscodeTransform<char, XalanDOMChar>());
+				HexadecimalNumberTranscodeTransform<char, XalanDOMChar>());
 #else
 				IdentityTransform<char, XalanDOMChar>());
 #endif
diff --git a/src/XPath/FunctionDoc.hpp b/src/XPath/FunctionDoc.hpp
deleted file mode 100644
index 6e72d3d..0000000
--- a/src/XPath/FunctionDoc.hpp
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 1999 The Apache Software Foundation.  All rights 
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer. 
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:  
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written 
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 1999, International
- * Business Machines, Inc., http://www.ibm.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-#if !defined(FUNCTIONDOC_HEADER_GUARD_1357924680)
-#define FUNCTIONDOC_HEADER_GUARD_1357924680
-
-
-
-// Base header file.  Must be first.
-#include <XSLT/XSLTDefinitions.hpp>
-
-
-
-#include <vector>
-
-
-
-#include <PlatformSupport/DOMStringHelper.hpp>
-
-
-
-// Base class header file...
-#include <XPath/Function.hpp>
-
-
-/**
- * XPath implementation of "document" function.
- */
-//
-// These are all inline, even though
-// there are virtual functions, because we expect that they will only be
-// needed by the XSLT class.
-class XALAN_XSLT_EXPORT FunctionDoc : public Function
-{
-public:
-
-	// These methods are inherited from Function ...
-
-	virtual XObjectPtr
-	execute(
-			XPathExecutionContext&			executionContext,
-			const DOM_Node&					context,
-			int								/* opPos */,
-			const XObjectArgVectorType&		args)
-	{
-		executionContext.error("Document() function implementation has been replaced by xslt/FunctionDocument!",
-							   context);
-
-		return executionContext.getXObjectFactory().createNull();
-	}
-
-#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
-	virtual Function*
-#else
-	virtual FunctionDoc*
-#endif
-	clone() const
-	{
-		return new FunctionDoc(*this);
-	}
-
-private:
-
-	// Not implemented...
-	FunctionDoc&
-	operator=(const FunctionDoc&);
-
-	bool
-	operator==(const FunctionDoc&) const;
-};
-
-
-
-#endif	// FUNCTIONDOC_HEADER_GUARD_1357924680
diff --git a/src/XPath/MutableNodeRefList.cpp b/src/XPath/MutableNodeRefList.cpp
index d721be7..19b74e5 100644
--- a/src/XPath/MutableNodeRefList.cpp
+++ b/src/XPath/MutableNodeRefList.cpp
@@ -420,7 +420,14 @@
 
 			if (theIndex < theCurrentIndex)
 			{
-				last = current - 1;
+				if (current == begin)
+				{
+					break;
+				}
+				else
+				{
+					last = current - 1;
+				}
 			}
 			else if (theIndex > theCurrentIndex)
 			{
diff --git a/src/XPath/XObject.cpp b/src/XPath/XObject.cpp
index c69b2de..4fc80ec 100644
--- a/src/XPath/XObject.cpp
+++ b/src/XPath/XObject.cpp
@@ -682,7 +682,7 @@
 			const double			theRHS,
 			const CompareFunction&	theCompareFunction)
 {
-	bool				theResult = false;
+	bool	theResult = false;
 
 	const NodeRefListBase::size_type	len1 = theLHSNodeSet.getLength();
 
diff --git a/src/XSLT/NamespacesHandler.hpp b/src/XSLT/NamespacesHandler.hpp
index e6979a0..3e63389 100644
--- a/src/XSLT/NamespacesHandler.hpp
+++ b/src/XSLT/NamespacesHandler.hpp
@@ -109,7 +109,7 @@
 		isActive(const XalanDOMString&	thePrefix) const = 0;
 	};
 
-	class Namespace
+	class XALAN_XSLT_EXPORT Namespace
 	{
 	public:
 
@@ -186,7 +186,7 @@
 		const XalanDOMString*	m_uri;
 	};
 
-	class NamespaceExtended : public Namespace
+	class XALAN_XSLT_EXPORT NamespaceExtended : public Namespace
 	{
 	public:
 
diff --git a/src/XSLT/XalanTemplate.cpp b/src/XSLT/XalanTemplate.cpp
index aed91a6..cfcd9eb 100644
--- a/src/XSLT/XalanTemplate.cpp
+++ b/src/XSLT/XalanTemplate.cpp
@@ -104,11 +104,7 @@
 #include <PlatformSupport/PrintWriter.hpp>
 #include <PlatformSupport/XalanOutputStream.hpp>
 #include <PlatformSupport/XalanUnicode.hpp>
-#include <PlatformSupport/XalanDOMStringCache.hpp>
-
-
-
-#include <DOMSupport/XalanDocumentPrefixResolver.hpp>
+#include <PlatformSupport/XalanDOMStringCache.hpp>