diff --git a/src/xercesc/util/RefHash2KeysTableOf.c b/src/xercesc/util/RefHash2KeysTableOf.c
index 40a0032b0f57ddd07887af3afd6a7ecd26fc3f16..c0262a2c33098d31838923e5cadeeb06425e071b 100644
--- a/src/xercesc/util/RefHash2KeysTableOf.c
+++ b/src/xercesc/util/RefHash2KeysTableOf.c
@@ -56,6 +56,9 @@
 
 /**
  * $Log$
+ * Revision 1.5  2003/10/17 21:10:40  peiyongz
+ * nextElementKey() added
+ *
  * Revision 1.4  2003/05/18 14:02:05  knoaman
  * Memory manager implementation: pass per instance manager.
  *
@@ -438,6 +441,24 @@ template <class TVal> TVal& RefHash2KeysTableOfEnumerator<TVal>::nextElement()
     return *saveElem->fData;
 }
 
+template <class TVal> void RefHash2KeysTableOfEnumerator<TVal>::nextElementKey(void*& retKey1, int& retKey2)
+{
+    // Make sure we have an element to return
+    if (!hasMoreElements())
+        ThrowXML(NoSuchElementException, XMLExcepts::Enum_NoMoreElements);
+
+    //
+    //  Save the current element, then move up to the next one for the
+    //  next time around.
+    //
+    RefHash2KeysTableBucketElem<TVal>* saveElem = fCurElem;
+    findNext();
+
+    retKey1 = saveElem->fKey1;
+    retKey2 = saveElem->fKey2;
+
+    return;
+}
 
 template <class TVal> void RefHash2KeysTableOfEnumerator<TVal>::Reset()
 {
diff --git a/src/xercesc/util/RefHash2KeysTableOf.hpp b/src/xercesc/util/RefHash2KeysTableOf.hpp
index da545797570166b108089c8e6425f951750ce78f..f819b7250694bddbc8ae29204c037fd89dc9b015 100644
--- a/src/xercesc/util/RefHash2KeysTableOf.hpp
+++ b/src/xercesc/util/RefHash2KeysTableOf.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.6  2003/10/17 21:10:40  peiyongz
+ * nextElementKey() added
+ *
  * Revision 1.5  2003/05/18 14:02:05  knoaman
  * Memory manager implementation: pass per instance manager.
  *
@@ -253,6 +256,10 @@ public :
     TVal& nextElement();
     void Reset();
 
+    // -----------------------------------------------------------------------
+    //  New interface 
+    // -----------------------------------------------------------------------
+    void nextElementKey(void*&, int&);
 
 private :
     // -----------------------------------------------------------------------