diff --git a/src/xercesc/dom/DOMUserDataHandler.hpp b/src/xercesc/dom/DOMUserDataHandler.hpp
index 68654cce5981483bc597be55fcba40e871653081..f4de9f03f980a3728957512ce5c8767dc6f9edc6 100644
--- a/src/xercesc/dom/DOMUserDataHandler.hpp
+++ b/src/xercesc/dom/DOMUserDataHandler.hpp
@@ -34,7 +34,7 @@ XERCES_CPP_NAMESPACE_BEGIN
  * the application to implement various behaviors regarding the data it
  * associates to the DOM nodes. This interface defines that handler.
  *
- * <p>See also the <a href='http://www.w3.org/2001/07/WD-DOM-Level-3-Core-20010726'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
  * @since DOM Level 3
  */
 class CDOM_EXPORT DOMUserDataHandler {
@@ -128,7 +128,7 @@ public:
                         const XMLCh* const key,
                         void* data,
                         const DOMNode* src,
-                        const DOMNode* dst) = 0;
+                        DOMNode* dst) = 0;
 
     //@}
 
diff --git a/src/xercesc/dom/impl/DOMDocumentImpl.cpp b/src/xercesc/dom/impl/DOMDocumentImpl.cpp
index 1f4330968f11141ef22149ae7a72b17d5d99dad5..c49f0edc509d4b8f50988e4171b41dbcbb35f58b 100644
--- a/src/xercesc/dom/impl/DOMDocumentImpl.cpp
+++ b/src/xercesc/dom/impl/DOMDocumentImpl.cpp
@@ -1305,7 +1305,7 @@ void* DOMDocumentImpl::getUserData(const DOMNodeImpl* n, const XMLCh* key) const
     return 0;
 }
 
-void DOMDocumentImpl::callUserDataHandlers(const DOMNodeImpl* n, DOMUserDataHandler::DOMOperationType operation, const DOMNode* src, const DOMNode* dst) const
+void DOMDocumentImpl::callUserDataHandlers(const DOMNodeImpl* n, DOMUserDataHandler::DOMOperationType operation, const DOMNode* src, DOMNode* dst) const
 {
     if (fUserDataTable) {
         RefHash2KeysTableOfEnumerator<DOMUserDataRecord> userDataEnum(fUserDataTable, false, fMemoryManager);
diff --git a/src/xercesc/dom/impl/DOMDocumentImpl.hpp b/src/xercesc/dom/impl/DOMDocumentImpl.hpp
index e98678a5d0deff8699d94930bbb2d6a5dcb3e80f..683e00fea38cb52681b05b922067302eea649bea 100644
--- a/src/xercesc/dom/impl/DOMDocumentImpl.hpp
+++ b/src/xercesc/dom/impl/DOMDocumentImpl.hpp
@@ -232,7 +232,7 @@ public:
     void                         callUserDataHandlers(const DOMNodeImpl* n,
                                                       DOMUserDataHandler::DOMOperationType operation,
                                                       const DOMNode* src,
-                                                      const DOMNode* dst) const;
+                                                      DOMNode* dst) const;
     void                         transferUserData(DOMNodeImpl* n1, DOMNodeImpl* n2);
 
     DOMNode*                     renameNode(DOMNode* n,
diff --git a/src/xercesc/dom/impl/DOMNodeImpl.cpp b/src/xercesc/dom/impl/DOMNodeImpl.cpp
index 8a6a4ad44571fb3332714dbe04db888bdc38bac2..50f5dea560693f952c38f6de062602fe03bb17cd 100644
--- a/src/xercesc/dom/impl/DOMNodeImpl.cpp
+++ b/src/xercesc/dom/impl/DOMNodeImpl.cpp
@@ -388,7 +388,7 @@ void* DOMNodeImpl::getUserData(const XMLCh* key) const
 
 void DOMNodeImpl::callUserDataHandlers(DOMUserDataHandler::DOMOperationType operation,
                                        const DOMNode* src,
-                                       const DOMNode* dst) const
+                                       DOMNode* dst) const
 {
     DOMDocumentImpl* doc=(DOMDocumentImpl*)getOwnerDocument();
     if (doc)
diff --git a/src/xercesc/dom/impl/DOMNodeImpl.hpp b/src/xercesc/dom/impl/DOMNodeImpl.hpp
index 4834b2663f981cc787f557d9d762c498271d863a..5e0e79ad30a7fe89c33906facf1b8035e9b501f9 100644
--- a/src/xercesc/dom/impl/DOMNodeImpl.hpp
+++ b/src/xercesc/dom/impl/DOMNodeImpl.hpp
@@ -133,7 +133,7 @@ public:
     void              release();
     void              callUserDataHandlers(DOMUserDataHandler::DOMOperationType operation,
                                            const DOMNode* src,
-                                           const DOMNode* dst) const;
+                                           DOMNode* dst) const;
     //reverses the bit pattern given by compareDocumentPosition
     short             reverseTreeOrderBitPattern(short pattern) const;
     const DOMNode*    getTreeParentNode(const DOMNode* node) const;
diff --git a/tests/src/DOM/DOMTest/DTest.h b/tests/src/DOM/DOMTest/DTest.h
index 181d32e9f81ad997aeadcaa5f9309ec9352883bd..3e985454e7f73bf4a025b65f0a511dedf08d32ad 100644
--- a/tests/src/DOM/DOMTest/DTest.h
+++ b/tests/src/DOM/DOMTest/DTest.h
@@ -129,13 +129,13 @@ public:
                 const XMLCh* const key,
                 void* data,
                 const DOMNode* src,
-                const DOMNode* dst)
+                DOMNode* dst)
     {
         currentType = operation;
         currentKey = (XMLCh*) key;
         currentData = data;
         currentSrc = (DOMNode*) src;
-        currentDst = (DOMNode*) dst;
+        currentDst = dst;
     };
 
     DOMOperationType getCurrentType() {