diff --git a/src/util/TransService.cpp b/src/util/TransService.cpp
index b19e5a3caa31a0fd49ae7c1110bece3b2b6e2ef9..b84104d82f3dfffd8fc37c577f3c296770aed4c3 100644
--- a/src/util/TransService.cpp
+++ b/src/util/TransService.cpp
@@ -289,6 +289,7 @@ void XMLTransService::initTransService()
     //
     gMappings->put(new ENameMapFor<XMLUTF8Transcoder>(XMLUni::fgUTF8EncodingString));
     gMappings->put(new ENameMapFor<XMLUTF8Transcoder>(XMLUni::fgUTF8EncodingString2));
+    gMappings->put(new ENameMapFor<XMLUTF8Transcoder>(XMLUni::fgUTF8EncodingString3));
 
     //
     //  Add in our mappings for Latin1
diff --git a/src/util/XMLUni.cpp b/src/util/XMLUni.cpp
index c160dc9f768fd40d227ca3cd91518dfcb58bc2d8..e5b6c18bb30706621df623fc223f238e77774eb9 100644
--- a/src/util/XMLUni.cpp
+++ b/src/util/XMLUni.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.18  2000/06/13 19:38:07  aruna1
+ * Added functionality to recognize UTF_8 encodings in intrinsic trascoders
+ *
  * Revision 1.17  2000/05/04 02:43:45  aruna1
  * solaris : instance=static related changes
  *
@@ -463,6 +466,11 @@ const XMLCh XMLUni::fgUTF8EncodingString2[] =
     chLatin_U, chLatin_T, chLatin_F, chDigit_8, chNull
 };
 
+const XMLCh XMLUni::fgUTF8EncodingString3[] =
+{
+    chLatin_U, chLatin_T, chLatin_F, chUnderscore , chDigit_8, chNull
+};
+
 const XMLCh XMLUni::fgUTF16EncodingString[] =
 {
     chLatin_U, chLatin_T, chLatin_F, chDash, chDigit_1, chDigit_6, chNull
diff --git a/src/util/XMLUni.hpp b/src/util/XMLUni.hpp
index fd6e65edbcf309225e0a2527b2cb19384c5bbab8..470a82ebf264da003f92bf673ed6dc6d88451979 100644
--- a/src/util/XMLUni.hpp
+++ b/src/util/XMLUni.hpp
@@ -260,6 +260,7 @@ public :
     static const XMLCh fgUSASCIIEncodingString4[];
     static const XMLCh fgUTF8EncodingString[];
     static const XMLCh fgUTF8EncodingString2[];
+    static const XMLCh fgUTF8EncodingString3[];
     static const XMLCh fgUTF16EncodingString[];
     static const XMLCh fgUTF16EncodingString2[];
     static const XMLCh fgUTF16EncodingString3[];