diff --git a/src/xercesc/parsers/SAX2XMLReaderImpl.cpp b/src/xercesc/parsers/SAX2XMLReaderImpl.cpp
index fc4c5e1758b4417e4b5739a7828d50d4df1366ef..d439c4c935b08645fd1823929cba7b13f19d4efe 100644
--- a/src/xercesc/parsers/SAX2XMLReaderImpl.cpp
+++ b/src/xercesc/parsers/SAX2XMLReaderImpl.cpp
@@ -16,6 +16,9 @@
 
 /*
  * $Log$
+ * Revision 1.40  2004/10/04 11:30:51  amassari
+ * As start/endPrefixMapping doesn't use the XMLBufMgr variable, we need only one XMLBuffer
+ *
  * Revision 1.39  2004/10/04 09:26:31  amassari
  * Use an XMLStringPool+ValueStackOf(int) object to store the prefixes currently in scope, instead of a XMLBufMgr+ValueStack(XMLBuffer), that has a limitation of 32 items (jira#866)
  *
@@ -285,7 +288,6 @@
  */
 
 #include <xercesc/util/IOException.hpp>
-#include <xercesc/util/XMLChTranscoder.hpp>
 #include <xercesc/util/RefStackOf.hpp>
 #include <xercesc/util/XMLUniDefs.hpp>
 #include <xercesc/util/Janitor.hpp>
@@ -344,7 +346,7 @@ SAX2XMLReaderImpl::SAX2XMLReaderImpl(MemoryManager* const  manager
     , fValidator(0)
     , fMemoryManager(manager)
     , fGrammarPool(gramPool)
-    , fStringBuffers(manager)
+    , fBuffer(1023,manager)
 {
     try
     {
@@ -949,12 +951,12 @@ startElement(   const   XMLElementDecl&         elemDecl
 
     if (fDocHandler)
     {
-        XMLBufBid elemQName( &fStringBuffers ) ;
+        fBuffer.reset();
         if (elemPrefix && *elemPrefix) {
-            elemQName.set(elemPrefix);
-            elemQName.append(chColon);
+            fBuffer.set(elemPrefix);
+            fBuffer.append(chColon);
         }
-        elemQName.append(elemDecl.getBaseName());
+        fBuffer.append(elemDecl.getBaseName());
 
         if (getDoNamespaces())
         {
@@ -1007,7 +1009,7 @@ startElement(   const   XMLElementDecl&         elemDecl
             (
                 fScanner->getURIText(elemURLId)
                 , elemDecl.getBaseName()
-                , elemQName.getRawBuffer()
+                , fBuffer.getRawBuffer()
                 , fAttrList
             );
         }
@@ -1031,7 +1033,7 @@ startElement(   const   XMLElementDecl&         elemDecl
                 (
                     fScanner->getURIText(elemURLId)
                     , elemDecl.getBaseName()
-                    , elemQName.getRawBuffer()
+                    , fBuffer.getRawBuffer()
                 );
 
                 unsigned int numPrefix = fPrefixCounts->pop();
@@ -1081,18 +1083,18 @@ void SAX2XMLReaderImpl::endElement( const   XMLElementDecl& elemDecl
         // get the prefixes back so that we can call endPrefixMapping()
         if (getDoNamespaces())
         {
-            XMLBufBid elemQName( &fStringBuffers ) ;
+            fBuffer.reset();
             if (elemPrefix && *elemPrefix) {
-                elemQName.set(elemPrefix);
-                elemQName.append(chColon);
+                fBuffer.set(elemPrefix);
+                fBuffer.append(chColon);
             }
-            elemQName.append(elemDecl.getBaseName());
+            fBuffer.append(elemDecl.getBaseName());
 
             fDocHandler->endElement
             (
                 fScanner->getURIText(uriId)
                 , elemDecl.getBaseName()
-                , elemQName.getRawBuffer()
+                , fBuffer.getRawBuffer()
             );
 
             unsigned int numPrefix = fPrefixCounts->pop();
diff --git a/src/xercesc/parsers/SAX2XMLReaderImpl.hpp b/src/xercesc/parsers/SAX2XMLReaderImpl.hpp
index 592975fedf060ddffb2ab4a7ee0805da55717629..2d3e3b1cd109f6099097f9a7b5deb0abb7a88c48 100644
--- a/src/xercesc/parsers/SAX2XMLReaderImpl.hpp
+++ b/src/xercesc/parsers/SAX2XMLReaderImpl.hpp
@@ -16,6 +16,9 @@
 
 /*
  * $Log$
+ * Revision 1.28  2004/10/04 11:30:51  amassari
+ * As start/endPrefixMapping doesn't use the XMLBufMgr variable, we need only one XMLBuffer
+ *
  * Revision 1.27  2004/10/04 09:26:31  amassari
  * Use an XMLStringPool+ValueStackOf(int) object to store the prefixes currently in scope, instead of a XMLBufMgr+ValueStack(XMLBuffer), that has a limitation of 32 items (jira#866)
  *
@@ -211,7 +214,6 @@
 #include <xercesc/util/RefStackOf.hpp>
 #include <xercesc/util/SecurityManager.hpp>
 #include <xercesc/util/ValueStackOf.hpp>
-#include <xercesc/framework/XMLBufferMgr.hpp>
 
 XERCES_CPP_NAMESPACE_BEGIN
 
@@ -1788,8 +1790,8 @@ private :
     //      Tells the parser whether it should reuse the grammar or not.
     //      If true, there cannot be any internal subset.
     //
-    //	fStringBuffers
-    //		Any temporary strings we need are pulled out of this pool
+    //	fPrefixesStorage
+    //		the namespace prefixes will be allocated from this pool
     //
     //	fPrefixes
     //		A Stack of the current namespace prefixes that need calls to
@@ -1847,6 +1849,9 @@ private :
     //      The grammar pool passed from external application (through derivatives).
     //      which could be 0, not owned.
     //
+    //   fBuffer
+    //      A buffer used to store the element name
+    //
     // -----------------------------------------------------------------------
     bool                        fNamespacePrefix;
     bool                        fAutoValidation;
@@ -1876,7 +1881,7 @@ private :
     XMLValidator*               fValidator;
     MemoryManager*              fMemoryManager;
     XMLGrammarPool*             fGrammarPool;
-    XMLBufferMgr                fStringBuffers;
+    XMLBuffer                   fBuffer;
 	
     // -----------------------------------------------------------------------
     // internal function used to set the state of the parser