diff --git a/src/xercesc/framework/MemBufFormatTarget.cpp b/src/xercesc/framework/MemBufFormatTarget.cpp
index 1d6edb682b30fb6fc18157a27ecd7e2ef270f730..f3214187fe43d811501a1c48cd8cbc570e98b9d4 100644
--- a/src/xercesc/framework/MemBufFormatTarget.cpp
+++ b/src/xercesc/framework/MemBufFormatTarget.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.2  2002/06/05 15:47:13  peiyongz
+ * data member changed, reset() added.
+ *
  * Revision 1.1  2002/05/28 22:40:46  peiyongz
  * DOM3 Save Interface: DOMWriter/DOMWriterFilter
  *
@@ -66,14 +69,11 @@
 #include <xercesc/util/XMLString.hpp>
 
 MemBufFormatTarget::MemBufFormatTarget()
-:fDataBuf(0)
 {
-	fDataBuf = new XMLBuffer();
 }
 
 MemBufFormatTarget::~MemBufFormatTarget()
 {
-	delete fDataBuf;
 }
 
 void MemBufFormatTarget::writeChars(const XMLByte* const toWrite
@@ -83,21 +83,26 @@ void MemBufFormatTarget::writeChars(const XMLByte* const toWrite
 	//
 	// The toWrite may not be null terminated,
 	// so we need to do some extra work here
-	// 
+	//
 	XMLByte  lastChar = toWrite[count];   // preserve the last char
 	XMLByte* tmpBuf   = (XMLByte *)toWrite;
     tmpBuf[count] = 0;
 
 	XMLCh*   transBuf = XMLString::transcode((char *) tmpBuf);
-	fDataBuf->append(transBuf, XMLString::stringLen(transBuf));
-	delete[] transBuf;                       
+	fDataBuf.append(transBuf, XMLString::stringLen(transBuf));
+	delete[] transBuf;
 
 	tmpBuf[count] = lastChar;             // restore the last char
 }
 
 XMLCh* MemBufFormatTarget::getString() const
 {
-	return XMLString::replicate(fDataBuf->getRawBuffer());
+	return XMLString::replicate(fDataBuf.getRawBuffer());
+}
+
+void MemBufFormatTarget::reset()
+{
+    fDataBuf.reset();
 }
 
 
diff --git a/src/xercesc/framework/MemBufFormatTarget.hpp b/src/xercesc/framework/MemBufFormatTarget.hpp
index d064cef2f6ba7c3503ceadfbfe708e8733b03a31..715407f6f49352477b961ea2e6964fe1aff6965f 100644
--- a/src/xercesc/framework/MemBufFormatTarget.hpp
+++ b/src/xercesc/framework/MemBufFormatTarget.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.2  2002/06/05 15:47:13  peiyongz
+ * data member changed, reset() added.
+ *
  * Revision 1.1  2002/05/28 22:40:46  peiyongz
  * DOM3 Save Interface: DOMWriter/DOMWriterFilter
  *
@@ -88,21 +91,33 @@ public:
     //  Getter
     // -----------------------------------------------------------------------
     /** @name getString */
-	/**
-	  * caller owns the returned string and is accountable
-	  * for the memory release
-	  */
     //@{
+    /**
+     * Returned the internal string buffer.
+     *
+     * Caller owns the returned string and is accountable
+     * for the memory release
+     */
     XMLCh* getString() const;
+    //@}
+
+    /** @name reset */
+    //@{
+    /**
+     * Reset the internal string buffer.
+     *
+     */
+    void reset();
+    //@}
 
 private:
     // -----------------------------------------------------------------------
     //  Unimplemented methods.
     // -----------------------------------------------------------------------
-    MemBufFormatTarget(const MemBufFormatTarget& other);
-    void operator=(const MemBufFormatTarget& rhs);
+    MemBufFormatTarget(const MemBufFormatTarget&);
+    MemBufFormatTarget& operator=(const MemBufFormatTarget&);
 
-    XMLBuffer     *fDataBuf;
+    XMLBuffer     fDataBuf;
 
 };