diff --git a/src/xercesc/dom/impl/DOMWriterImpl.cpp b/src/xercesc/dom/impl/DOMWriterImpl.cpp
index f38947bbe921c84d2e9f240f82a26cbbd6f1b080..6178d9714bdc4be5b1b9b0d02973fefad3f26488 100644
--- a/src/xercesc/dom/impl/DOMWriterImpl.cpp
+++ b/src/xercesc/dom/impl/DOMWriterImpl.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.13  2002/07/16 15:19:42  peiyongz
+ * check lenght of getEncoding()/getActualEncoding()
+ *
  * Revision 1.12  2002/06/25 16:17:16  tng
  * DOM L3: add release()
  *
@@ -602,13 +605,20 @@ void DOMWriterImpl::initSession(const DOMNode* const nodeToWrite)
                             (DOMDocument*)nodeToWrite : nodeToWrite->getOwnerDocument();
         if (docu)
         {
-            if (docu->getEncoding())
+            const XMLCh* tmpEncoding = docu->getEncoding();
+
+            if ( tmpEncoding && XMLString::stringLen(tmpEncoding))
             {
-                fEncodingUsed = docu->getEncoding();
+                fEncodingUsed = tmpEncoding;
             }
-            else if (docu->getActualEncoding())
+            else 
             {
-                fEncodingUsed = docu->getActualEncoding();
+                tmpEncoding = docu->getActualEncoding();
+
+                if ( tmpEncoding && XMLString::stringLen(tmpEncoding))               
+                {
+                    fEncodingUsed = tmpEncoding;
+                }
             }
         }
     }