diff --git a/src/dom/DocumentImpl.cpp b/src/dom/DocumentImpl.cpp
index 8efe2ab8ecd828e748cae7dc18a0d1b5069b0022..21a770767cb023c8a19d0706f38b4872b24e36a3 100644
--- a/src/dom/DocumentImpl.cpp
+++ b/src/dom/DocumentImpl.cpp
@@ -147,6 +147,7 @@ DocumentImpl::DocumentImpl(const DOMString &fNamespaceURI,
     docElement=null;
     appendChild(createElementNS(fNamespaceURI, qualifiedName));  //root element
     namePool = new DStringPool(257);
+    identifiers = new RefHashTableOf<PoolElem>(109);
     iterators = 0L;
     treeWalkers = 0L;
 }
@@ -163,6 +164,10 @@ DocumentImpl::~DocumentImpl()
         // The data in the vector is pointers owned by smart pointers, and will be cleaned up when they go away.
         delete treeWalkers;
     }
+    
+    if (identifiers != 0L) {
+	    delete identifiers;
+    }
 
     delete namePool;
     // Do not delete docType and docElement pointers here.