diff --git a/Projects/Win32/Unsupported/IntVC6/XMLUtil/XMLUtil.dsp b/Projects/Win32/Unsupported/IntVC6/XMLUtil/XMLUtil.dsp
index 5934431426161361f4a129538bec787cbe92ad20..55ef07aa93040bcbc783dc70cb0a0ae3528c816d 100644
--- a/Projects/Win32/Unsupported/IntVC6/XMLUtil/XMLUtil.dsp
+++ b/Projects/Win32/Unsupported/IntVC6/XMLUtil/XMLUtil.dsp
@@ -157,6 +157,10 @@ SOURCE=..\..\..\..\..\src\util\XMLException.cpp
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\..\..\..\src\util\XMLIBM1047Transcoder.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\..\..\..\src\util\XMLString.cpp
 # End Source File
 # Begin Source File
@@ -365,6 +369,10 @@ SOURCE=..\..\..\..\..\src\util\XMLExceptMsgs.hpp
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\..\..\..\src\util\XMLIBM1047Transcoder.hpp
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\..\..\..\src\util\XMLMsgLoader.hpp
 # End Source File
 # Begin Source File
diff --git a/src/util/TransService.cpp b/src/util/TransService.cpp
index 1b01e4771bda8580bac8ca9883ce5b7b32aae333..dd63b96f2a4fb81032731f821ee291d854fac574 100644
--- a/src/util/TransService.cpp
+++ b/src/util/TransService.cpp
@@ -62,6 +62,7 @@
 #include <util/XML88591Transcoder.hpp>
 #include <util/XMLASCIITranscoder.hpp>
 #include <util/XMLEBCDICTranscoder.hpp>
+#include <util/XMLIBM1047Transcoder.hpp>
 #include <util/XMLUCS4Transcoder.hpp>
 #include <util/XMLUTF8Transcoder.hpp>
 #include <util/XMLUTF16Transcoder.hpp>
@@ -300,11 +301,19 @@ void XMLTransService::initTransService()
         )
     );
 
-
     //
-    //  Add in our mappings for EBCDIC-US
+    //  Add in our mappings for EBCDIC-US. We map all the default EBCDIC
+    //  encodings to our intrinsic encoder, which is IBM-037. And of course
+    //  we map the IBM-037 encoding itself here as well.
     //
     gMappings->put(new ENameMapFor<XMLEBCDICTranscoder>(XMLUni::fgDefaultEBCDICEncodingString));
     gMappings->put(new ENameMapFor<XMLEBCDICTranscoder>(XMLUni::fgEBCDICEncodingString));
     gMappings->put(new ENameMapFor<XMLEBCDICTranscoder>(XMLUni::fgEBCDICEncodingString2));
+    gMappings->put(new ENameMapFor<XMLEBCDICTranscoder>(XMLUni::fgIBM037EncodingString));
+
+    //
+    //  And we intrinsically support the OE EBCDIC native page, which is IBM-1047.
+    //  It must be explicitly indicated as IBM-1047.
+    //
+    gMappings->put(new ENameMapFor<XMLIBM1047Transcoder>(XMLUni::fgIBM1047EncodingString));
 }
diff --git a/src/util/XMLUni.cpp b/src/util/XMLUni.cpp
index 5802340927a46fa42658c589a572b4189a870c4b..1703ff130d4de666f761790ae767140b85eb40d6 100644
--- a/src/util/XMLUni.cpp
+++ b/src/util/XMLUni.cpp
@@ -56,6 +56,9 @@
 
 /**
  * $Log$
+ * Revision 1.7  2000/02/08 00:59:19  roddey
+ * Support for new intrinsic encoder for IBM-1047 code page.
+ *
  * Revision 1.6  2000/02/06 07:48:06  rahulj
  * Year 2K copyright swat.
  *
@@ -201,6 +204,16 @@ const XMLCh XMLUni::fgGlobalNSURIName[] =
     ,   chLatin_N, chLatin_S, chNull
 };
 
+const XMLCh XMLUni::fgIBM037EncodingString[] =
+{
+    chLatin_I, chLatin_B, chLatin_M, chDash, chDigit_0, chDigit_3, chDigit_7, chNull
+};
+
+const XMLCh XMLUni::fgIBM1047EncodingString[] =
+{
+    chLatin_I, chLatin_B, chLatin_M, chDash, chDigit_1, chDigit_0, chDigit_4, chDigit_7, chNull
+};
+
 const XMLCh XMLUni::fgIESString[] =
 {
     chLatin_I, chLatin_E, chLatin_S, chNull
diff --git a/src/util/XMLUni.hpp b/src/util/XMLUni.hpp
index a654c4c86c9659801b5140c9635a1a29d5efb9aa..5a9da9044d63d66690de6fab391ffe46201812fe 100644
--- a/src/util/XMLUni.hpp
+++ b/src/util/XMLUni.hpp
@@ -56,6 +56,9 @@
 
 /**
  * $Log$
+ * Revision 1.6  2000/02/08 00:59:19  roddey
+ * Support for new intrinsic encoder for IBM-1047 code page.
+ *
  * Revision 1.5  2000/02/06 07:48:06  rahulj
  * Year 2K copyright swat.
  *
@@ -234,6 +237,8 @@ public :
     static const XMLCh fgExceptDomain[];
     static const XMLCh fgFixedString[];
     static const XMLCh fgGlobalNSURIName[];
+    static const XMLCh fgIBM037EncodingString[];
+    static const XMLCh fgIBM1047EncodingString[];
     static const XMLCh fgIESString[];
     static const XMLCh fgIDString[];
     static const XMLCh fgIDRefString[];