diff --git a/src/xercesc/parsers/SAX2XMLReaderImpl.cpp b/src/xercesc/parsers/SAX2XMLReaderImpl.cpp
index 30adeae483b2ff8c74bfab7183def8f363b4c2ca..74075d998fd5864d8ccffbe8f4d32f7d366fd836 100644
--- a/src/xercesc/parsers/SAX2XMLReaderImpl.cpp
+++ b/src/xercesc/parsers/SAX2XMLReaderImpl.cpp
@@ -25,6 +25,7 @@
 #include <xercesc/sax2/ContentHandler.hpp>
 #include <xercesc/sax2/LexicalHandler.hpp>
 #include <xercesc/sax2/DeclHandler.hpp>
+#include <xercesc/sax2/XMLReaderFactory.hpp>
 #include <xercesc/sax/DTDHandler.hpp>
 #include <xercesc/sax/ErrorHandler.hpp>
 #include <xercesc/sax/EntityResolver.hpp>
@@ -42,6 +43,14 @@
 XERCES_CPP_NAMESPACE_BEGIN
 
 
+SAX2XMLReader * XMLReaderFactory::createXMLReader(  MemoryManager* const  manager
+                                                  , XMLGrammarPool* const gramPool)
+{
+    SAX2XMLReaderImpl* pImpl=new (manager) SAX2XMLReaderImpl(manager, gramPool);
+	return pImpl;
+}
+
+
 const XMLCh gDTDEntityStr[] =
 {
     chOpenSquare, chLatin_d, chLatin_t, chLatin_d, chCloseSquare, chNull
diff --git a/src/xercesc/sax2/XMLReaderFactory.hpp b/src/xercesc/sax2/XMLReaderFactory.hpp
index f25e58d93f8aa2274821a81cfd8693784fe6bb0f..1554c0053ab37d1b06c50996a013f594bf4dabcd 100644
--- a/src/xercesc/sax2/XMLReaderFactory.hpp
+++ b/src/xercesc/sax2/XMLReaderFactory.hpp
@@ -21,7 +21,7 @@
 #ifndef XMLREADERFACTORY_HPP
 #define XMLREADERFACTORY_HPP
 
-#include <xercesc/parsers/SAX2XMLReaderImpl.hpp>
+#include <xercesc/sax2/SAX2XMLReader.hpp>
 #include <xercesc/sax/SAXException.hpp>
 
 XERCES_CPP_NAMESPACE_BEGIN
@@ -45,10 +45,9 @@ protected:                // really should be private, but that causes compiler
 	~XMLReaderFactory() ;
 
 public:
-	static SAX2XMLReader * createXMLReader( 
-                                               MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
-                                             , XMLGrammarPool* const gramPool = 0
-                                               ) ;
+	static SAX2XMLReader * createXMLReader(  MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+                                           , XMLGrammarPool* const gramPool = 0
+                                          ) ;
 	static SAX2XMLReader * createXMLReader(const XMLCh* className)  ;
 
 private:
@@ -59,13 +58,6 @@ private:
     XMLReaderFactory& operator=(const XMLReaderFactory&);
 };
 
-
-inline SAX2XMLReader * XMLReaderFactory::createXMLReader(MemoryManager* const  manager
-                                                       , XMLGrammarPool* const gramPool)
-{
-	return (SAX2XMLReader*)(new (manager) SAX2XMLReaderImpl(manager, gramPool));
-}
-
 inline SAX2XMLReader * XMLReaderFactory::createXMLReader(const XMLCh *)
 {	
 	throw SAXNotSupportedException();