diff --git a/src/xercesc/dom/impl/DOMEntityImpl.cpp b/src/xercesc/dom/impl/DOMEntityImpl.cpp
index a38752cd392f07b191ea910eccff7f9e42c8669f..b41772158cce7be56739ad0c5fd79aacb90b25fa 100644
--- a/src/xercesc/dom/impl/DOMEntityImpl.cpp
+++ b/src/xercesc/dom/impl/DOMEntityImpl.cpp
@@ -176,7 +176,9 @@ void DOMEntityImpl::setSystemId(const XMLCh *arg)
 
 
 void DOMEntityImpl::setBaseURI(const XMLCh* baseURI) {
-    fBaseURI = ((DOMDocumentImpl *)getOwnerDocument())->cloneString(baseURI);
+    XMLCh* temp = (XMLCh*) ((DOMDocumentImpl *)getOwnerDocument())->allocate((XMLString::stringLen(baseURI) + 9)*sizeof(XMLCh));
+    XMLString::fixURI(baseURI, temp);
+    fBaseURI = temp;
 }
 
 
diff --git a/src/xercesc/dom/impl/DOMNotationImpl.cpp b/src/xercesc/dom/impl/DOMNotationImpl.cpp
index 1a65428dee2b831543687a37a76bf72225ff65c7..31e555820cac22a7dfdbc27b73d127725bba1911 100644
--- a/src/xercesc/dom/impl/DOMNotationImpl.cpp
+++ b/src/xercesc/dom/impl/DOMNotationImpl.cpp
@@ -161,7 +161,9 @@ void DOMNotationImpl::release()
 }
 
 void DOMNotationImpl::setBaseURI(const XMLCh* baseURI) {
-    this->fBaseURI = ((DOMDocumentImpl *)getOwnerDocument())->cloneString(baseURI);
+    XMLCh* temp = (XMLCh*) ((DOMDocumentImpl *)getOwnerDocument())->allocate((XMLString::stringLen(baseURI) + 9)*sizeof(XMLCh));
+    XMLString::fixURI(baseURI, temp);
+    fBaseURI = temp;
 }
 
 const XMLCh* DOMNotationImpl::getBaseURI() const