diff --git a/obj/Makefile.in b/obj/Makefile.in
index 39fab607a9ecd1520ac5837f30fb1badd09c5e55..2d2018f39650b79651a2f8c3232c917f82dee823 100644
--- a/obj/Makefile.in
+++ b/obj/Makefile.in
@@ -77,6 +77,7 @@ LDFLAGS = @ldflags@
 LIBS = @libs@
 OSVER = @osver@
 TRANSCODER = @transcoder@
+MESSAGELOADER = @messageloader@
 BITSTOBUILD = @bitstobuild@
 
 include ../version.incl
diff --git a/src/xercesc/Makefile.incl b/src/xercesc/Makefile.incl
index 2fdf9ad4abd1049201a77696e0c113d5ddb1d4f8..3c2c4d44a3241a289ea52ce88a8cc1f17da97348 100644
--- a/src/xercesc/Makefile.incl
+++ b/src/xercesc/Makefile.incl
@@ -123,6 +123,12 @@ ifeq (${PLATFORM}, SOLARIS)
         ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib \
                   -lm  -lgen
     endif
+
+    ifeq (${MESSAGELOADER}, ICU)
+        ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib \
+                  -licuuc -licudata -lm -lgen
+    endif
+
   else
     PLATFORM_COMPILE_OPTIONS = -KPIC -mt -xs -ptr$(XML_OBJ_DIR) \
                                -features=rtti -D${PLATFORM} -D_REENTRANT
@@ -133,6 +139,11 @@ ifeq (${PLATFORM}, SOLARIS)
     else
         ALLLIBS = -mt ${LIBS}
     endif
+
+    ifeq (${MESSAGELOADER}, ICU)
+        ALLLIBS = -mt -licuuc -licudata ${LIBS}
+    endif
+
   endif
   SHLIBSUFFIX=.so
   ## Compiler switch to embed a library name
@@ -228,6 +239,11 @@ ifeq (${TRANSCODER}, ICU)
 else
     ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib
 endif
+
+ifeq (${MESSAGELOADER}, ICU)
+    ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc -licudata
+endif
+
 PLATFORM_COMPILE_OPTIONS = -qnotempinc -D_THREAD_SAFE
 
 ifeq (${BITSTOBUILD}, 64)
@@ -293,6 +309,11 @@ ifeq (${TRANSCODER}, ICU)
 else
     ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib
 endif
+
+ifeq (${MESSAGELOADER}, ICU)
+    ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -licuuc -licudata
+endif
+
 EXTRA_LINK_OPTIONS = -Xlinker -Map -Xlinker $(XML_OBJ)/${SO_NAME}.map
 SHLIBSUFFIX=.so
 ## Compiler switch to embed a library name
@@ -365,6 +386,11 @@ ifeq (${PLATFORM}, HPUX)
     else
         ALLLIBS = ${LIBS}
     endif
+
+    ifeq (${MESSAGELOADER}, ICU)
+        ALLLIBS = $(LIBS} -licuuc -licudata
+    endif
+
     EXTRA_LINK_OPTIONS = -b -Wl,+s -Wl,+b,.
     SHLIBSUFFIX=.sl
   else
@@ -383,6 +409,11 @@ ifeq (${PLATFORM}, HPUX)
     else
         ALLLIBS = ${LIBS}
     endif
+
+    ifeq (${MESSAGELOADER}, ICU)
+        ALLLIBS = $(LIBS} -licuuc -licudata
+    endif
+
     EXTRA_LINK_OPTIONS = -b -Wl,+s -Wl,+b,. -Wl,-a,shared
     SHLIBSUFFIX=.sl
   endif
diff --git a/src/xercesc/runConfigure b/src/xercesc/runConfigure
index 98022994226608f2f3f9196d5c55b86513f6a757..66c03c98356aef6b3c8cf17eaea15c546575bcc1 100755
--- a/src/xercesc/runConfigure
+++ b/src/xercesc/runConfigure
@@ -478,7 +478,8 @@ case $msgloader in
            exit ${ERROR_EXIT_CODE};
        fi
        MESSAGELOADER=ICU;
-       msgloaderDefines="-DXML_USE_ICU_MESSAGELOADER" ;;
+       msgloaderLibs="-L${ICUROOT} -L${ICUROOT}/lib -L${ICUROOT}/data";
+       msgloaderDefines="-DXML_USE_ICU_MESSAGELOADER -I${ICUROOT}/include";;
 
    inmem)
        ;;
@@ -607,7 +608,7 @@ fi
 LDFLAGS="$LDFLAGS $linkeroptions $bitstobuildLink"
 export LDFLAGS
 
-LIBS="$transcodingLibs $threadingLibs $netaccessorLibs"
+LIBS="$transcodingLibs $msgloaderLibs $threadingLibs $netaccessorLibs"
 export LIBS