diff --git a/scripts/packageBinaries.pl b/scripts/packageBinaries.pl
index 5ad59e8ea8edc40bf7c4f66ce1343b92d1f1ea76..8e5994d2137a1cedf79f4a2a2584b2d87ee7b47d 100644
--- a/scripts/packageBinaries.pl
+++ b/scripts/packageBinaries.pl
@@ -1324,20 +1324,18 @@ if ( ($platform =~ m/AIX/i)   || ($platform =~ m/HP-UX/i) || ($platform =~ m/BeO
 
         # Copy the Resouce Bundle for ICUMsgLoader
         if ( $opt_m =~ m/icu/i) {
-            psystem("cp -f $XERCESCROOT/src/xercesc/util/MsgLoaders/ICU/resources/XercesMessages*.res $targetdir/msg");
-
-            # to be removed once the versioned shared library build is done.
-            psystem("cp -f $XERCESCROOT/src/xercesc/util/MsgLoaders/ICU/resources/libXercesMessages*.* $targetdir/lib");
-            
-            psystem("cp -f $XERCESCROOT/src/xercesc/util/MsgLoaders/ICU/resources/libXercesMessages23.0.so $targetdir/lib");
+            print ("\n\nCopying ICU message bundles ...\n");        	
+            psystem("cp -f $XERCESCROOT/msg/XercesMessages*.res $targetdir/msg");
+           
+            psystem("cp -f $XERCESCROOT/lib/libXercesMessages23.0.so .");
             psystem("find . -name 'libXercesMessages23.0.so' -exec ln -s {} libXercesMessages23.so \\;");
-            psystem("find . -name 'libXercesMessages23.so    -exec ln -s {} libXercesMessages.so \\;");
+            psystem("find . -name 'libXercesMessages23.so'   -exec ln -s {} libXercesMessages.so \\;");
                     
-            psystem("cp -f $XERCESCROOT/src/xercesc/util/MsgLoaders/ICU/resources/libXercesMessages.so.23.0 $targetdir/lib");
+            psystem("cp -f $XERCESCROOT/lib/libXercesMessages.so.23.0 .");
             psystem("find . -name 'libXercesMessages.so.23.0' -exec ln -s {} libXercesMessages.so.23 \\;");
             psystem("find . -name 'libXercesMessages.so.23'   -exec ln -s {} libXercesMessages.so \\;");
             
-            psystem("cp -f $XERCESCROOT/src/xercesc/util/MsgLoaders/ICU/resources/libXercesMessages.sl.23.0 $targetdir/lib");
+            psystem("cp -f $XERCESCROOT/lib/libXercesMessages.sl.23.0 .");
             psystem("find . -name 'libXercesMessages.sl.23.0' -exec ln -s {} libXercesMessages.sl.23 \\;");
             psystem("find . -name 'libXercesMessages.sl.23'   -exec ln -s {} libXercesMessages.sl \\;");            
         }        	
diff --git a/src/xercesc/Makefile.incl b/src/xercesc/Makefile.incl
index e588ff5f66f5219635541d24ffa9f00aae167fb5..601c9411b54ca9d15ced2c5f5b40cbc60bc1d733 100644
--- a/src/xercesc/Makefile.incl
+++ b/src/xercesc/Makefile.incl
@@ -575,6 +575,10 @@ ifeq (${PLATFORM}, AIX)
     LINK_NAME=${LIBNAME}${SHLIBSUFFIX}
     SO_NAME  =${LIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX}
     REAL_NAME=${LIBNAME}${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}${SHLIBSUFFIX}
+    
+    RESLIB_LINK_NAME=${RESLIBNAME}${SHLIBSUFFIX}
+    RESLIB_SO_NAME  =${RESLIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX}
+    RESLIB_REAL_NAME=${RESLIBNAME}${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}${SHLIBSUFFIX}        
 endif
 ifeq (${PLATFORM}, OS390)
 	#
@@ -585,6 +589,10 @@ ifeq (${PLATFORM}, OS390)
 	LINK_NAME=${LIBNAME}${SHLIBSUFFIX}
 	SO_NAME  =${LIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX}
 	REAL_NAME=${LIBNAME}${VER}${SHLIBSUFFIX}
+	
+    RESLIB_LINK_NAME=${RESLIBNAME}${SHLIBSUFFIX}
+    RESLIB_SO_NAME  =${RESLIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX}
+    RESLIB_REAL_NAME=${RESLIBNAME}${VER}${SHLIBSUFFIX}	
 endif
 ifeq (${PLATFORM}, CYGWIN)
 	#
@@ -627,6 +635,10 @@ ifeq ($(SO_NAME),)
 	LINK_NAME=${LIBNAME}${SHLIBSUFFIX}
 	SO_NAME  =${LIBNAME}${SHLIBSUFFIX}.${SO_TARGET_VERSION}
 	REAL_NAME=${LIBNAME}${SHLIBSUFFIX}.${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}
+	
+    RESLIB_LINK_NAME=${RESLIBNAME}${SHLIBSUFFIX}
+    RESLIB_SO_NAME  =${RESLIBNAME}${SHLIBSUFFIX}.${SO_TARGET_VERSION}
+    RESLIB_REAL_NAME=${RESLIBNAME}${SHLIBSUFFIX}.${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}	
 endif
 
 
@@ -634,6 +646,9 @@ FQ_LINK_NAME=${XML_LIB_DIR}/${LINK_NAME}
 FQ_SO_NAME  =${XML_LIB_DIR}/${SO_NAME}
 FQ_REAL_NAME=${XML_LIB_DIR}/${REAL_NAME}
 
+FQ_RESLIB_LINK_NAME=${XML_LIB_DIR}/${RESLIB_LINK_NAME}
+FQ_RESLIB_SO_NAME  =${XML_LIB_DIR}/${RESLIB_SO_NAME}
+FQ_RESLIB_REAL_NAME=${XML_LIB_DIR}/${RESLIB_REAL_NAME}
 
 ###################### STANDARD TOOLS #############################
 ifeq (${PLATFORM}, OS400)
diff --git a/src/xercesc/util/Makefile.in b/src/xercesc/util/Makefile.in
index b10036049c87085680f4028e05c34d9b5431b390..2eff6b5d5404eff8b1ee4bef15d5391f8f5f4e47 100644
--- a/src/xercesc/util/Makefile.in
+++ b/src/xercesc/util/Makefile.in
@@ -55,6 +55,9 @@
 #
 #
 # $Log$
+# Revision 1.30  2003/03/18 21:06:38  peiyongz
+# Build versioned shared library, libXercesMessages on UNIX
+#
 # Revision 1.29  2003/03/09 21:49:07  peiyongz
 # Makefile:559: *** missing separator.
 #
@@ -626,8 +629,8 @@ endif
 ifeq (${MESSAGELOADER},ICU)
 	mkdir -p ${MSG_DIR}
 	${MAKE} -C MsgLoaders/$(MESSAGELOADERMODULE)/resources
-	$(CP) MsgLoaders/$(MESSAGELOADERMODULE)/resources/*.res ${MSG_DIR}
-	$(CP) MsgLoaders/$(MESSAGELOADERMODULE)/resources/libXercesMessages.* ${XERCESCROOT}/lib
+	$(CP) MsgLoaders/$(MESSAGELOADERMODULE)/resources/*.res ${MSG_DIR}	
+
 endif
 
 compilers::
diff --git a/src/xercesc/util/MsgLoaders/ICU/resources/Makefile.in b/src/xercesc/util/MsgLoaders/ICU/resources/Makefile.in
index 3c5e1e182a214cbe750fba4084fd53dc941a25e1..d5b214748d3c06ec878a1abb42a7174054e55a39 100644
--- a/src/xercesc/util/MsgLoaders/ICU/resources/Makefile.in
+++ b/src/xercesc/util/MsgLoaders/ICU/resources/Makefile.in
@@ -42,6 +42,7 @@ MESSAGELOADER = @messageloader@
 TRANSCODER = @transcoder@
 THREADS = @threads@
 
+include ../../../../../../version.incl
 include ../../../../Makefile.incl
 
 ####################################################################
@@ -78,6 +79,7 @@ CHECK_VARS=
 
 # target file for resource bundle - this must be set, or 'make all' won't
 # build any resources.
+RESLIBNAME=lib$(RESNAME)
 RESTARGET=lib$(RESNAME)$(SHLIBSUFFIX)
 
 # Resource files.  Add new ones for additional locales here.
@@ -96,8 +98,14 @@ $(TARGET): $(OBJECTS)
 	$(LINK.cc) $^ $(LOADLIBES) $(LDLIBS) -o $@ $(XTRALIBS)
 
 $(RESTARGET): $(RESFILES)
+	@echo building ${FQ_RESLIB_REAL_NAME}
 	$(PKGDATA) --name $(RESNAME) --mode $(RESMODE) $(PKGDATAOPTS) $(RESLIST)
-	cp $(RESTARGET) $(XERCESCROOT)/lib
+	mv $(RESTARGET) ${FQ_RESLIB_REAL_NAME}
+	@echo symlink ${FQ_RESLIB_SO_NAME}
+	ln -s ${FQ_RESLIB_REAL_NAME} ${FQ_RESLIB_SO_NAME}
+	@echo symlink ${FQ_RESLIB_LINK_NAME}
+	ln -s ${FQ_RESLIB_SO_NAME} ${FQ_RESLIB_LINK_NAME}	
+
 	
 res-install: $(RESTARGET)
 	$(PKGDATA) --name $(RESNAME) --mode $(RESMODE) $(PKGDATAOPTS) $(RESLIST) --install $(shell icu-config --libdir)
@@ -121,6 +129,3 @@ $(RESNAME)_%.res: %.txt
 # for installing the library
 install: res-install
 
-$(RESNAME)_es.res: es.txt
-	@echo "generating $@"
-	$(GENRB) $(GENRBOPT) -e latin-1 $^