diff --git a/src/xercesc/validators/schema/XMLSchemaDescriptionImpl.cpp b/src/xercesc/validators/schema/XMLSchemaDescriptionImpl.cpp
index 5a4e4d1206ec9177975f5f78518b839917c440fb..8f6991cdb3588ad034c4ff6b854b6a7d190ec536 100644
--- a/src/xercesc/validators/schema/XMLSchemaDescriptionImpl.cpp
+++ b/src/xercesc/validators/schema/XMLSchemaDescriptionImpl.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.7  2004/03/03 23:04:17  peiyongz
+ * deallocate fNamespace when loaded
+ *
  * Revision 1.6  2003/12/24 15:24:16  cargilld
  * More updates to memory management so that the static memory manager.
  *
@@ -244,6 +247,12 @@ void XMLSchemaDescriptionImpl::serialize(XSerializeEngine& serEng)
         serEng>>i;
 
         fContextType = (ContextType)i;       
+
+        //the original fNamespace which came from the ctor needs deallocated
+        if (fNamespace)
+        {
+            XMLGrammarDescription::getMemoryManager()->deallocate((void*)fNamespace);
+        }
         serEng.readString((XMLCh*&)fNamespace);
 
         /***