diff --git a/scripts/packageBinaries.pl b/scripts/packageBinaries.pl
index c9c09990b010d7a6d3aee2eeb4d8eb1a3c538234..0b1af260b03be1ea4d90a377f969890f3f218fac 100644
--- a/scripts/packageBinaries.pl
+++ b/scripts/packageBinaries.pl
@@ -701,12 +701,6 @@ if ( ($platform =~ m/AIX/i)      ||
             psystem ("$MAKE");                           # This will take a long time!
             psystem ("$MAKE install");                  # Make this separate since this breaks on Solaris
        
-            # on AIX, create '.a' version for building libxerces-c
-            if ( $platform eq "aix") {
-                psystem("ln -s $ICUROOT/lib/libicudata30.0.so $ICUROOT/lib/libicudata30.a");
-                psystem("ln -s $ICUROOT/lib/libicuuc30.0.so   $ICUROOT/lib/libicuuc30.a");
-            }
-
         } #opt_j
 
         #
@@ -809,13 +803,10 @@ if ( ($platform =~ m/AIX/i)      ||
             psystem("find . -name 'libXercesMessages.sl.25.0' -exec ln -s {} libXercesMessages.sl.25 \\;");
             psystem("find . -name 'libXercesMessages.sl.25'   -exec ln -s {} libXercesMessages.sl \\;");            
 
-            # on AIX            
-            if ( $platform eq "aix") {
-                psystem("cp -f $XERCESCROOT/lib/libXercesMessages25.0.a .");
-                psystem("ln -s libXercesMessages25.0.a libXercesMessages25.a ");
-                psystem("ln -s libXercesMessages25.a   libXercesMessages.a   ");
-            }        
-                    
+            psystem("cp -f $XERCESCROOT/lib/libXercesMessages25.0.a .");
+            psystem("find . -name 'libXercesMessages25.0.a'   -exec ln -s {} libXercesMessages25.a \\;");
+            psystem("find . -name 'libXercesMessages25.a'     -exec ln -s {} libXercesMessages.a \\;");
+                               
         }        	
 
     }
@@ -1117,18 +1108,22 @@ sub copyICUOnUNIX() {
         #
         # copy icudata dll
         # For ICU 2.6:
-        # on AIX,              it is called libicudata30.0.so
-        # on Solaris/Linux, it is called libicudata.so.30.0
+        # on AIX,              it is called libicudata30.0.a
+        # on Solaris/Linux,    it is called libicudata.so.30.0
         # on HP,               it is called libicudata.sl.30.0
         #
         psystem("rm -f libicudata*");
         psystem("cp -f $ICUROOT/lib/libicudata30.0.so .");
+        psystem("cp -f $ICUROOT/lib/libicudata30.0.a .");        
         psystem("cp -f $ICUROOT/lib/libicudata.so.30.0 .");
         psystem("cp -f $ICUROOT/lib/libicudata.sl.30.0 .");
         
         psystem("find . -name 'libicudata30.0.so' -exec ln -s {} libicudata.so \\;");
         psystem("find . -name 'libicudata30.0.so' -exec ln -s {} libicudata30.so \\;");
 
+        psystem("find . -name 'libicudata30.0.a'  -exec ln -s {} libicudata.a \\;");
+        psystem("find . -name 'libicudata30.0.a'  -exec ln -s {} libicudata30.a \\;");
+        
         psystem("find . -name 'libicudata.so.30.0' -exec ln -s {} libicudata.so \\;");
         psystem("find . -name 'libicudata.so.30.0' -exec ln -s {} libicudata.so.30 \\;");
 
@@ -1137,30 +1132,28 @@ sub copyICUOnUNIX() {
 
         #
         # copy icuuc dll
-        # on AIX,              it is called libicuuc30.0.so
-        # on Solaris/Linux, it is called libicuuc.so.30.0
+        # on AIX,              it is called libicuuc30.0.a
+        # on Solaris/Linux,    it is called libicuuc.so.30.0
         # on HP,               it is called libicuuc.sl.30.0
         #
         psystem("rm -f libicuuc*");
         psystem("cp -f $ICUROOT/lib/libicuuc30.0.so .");
+        psystem("cp -f $ICUROOT/lib/libicuuc30.0.a  .");        
         psystem("cp -f $ICUROOT/lib/libicuuc.so.30.0  .");
         psystem("cp -f $ICUROOT/lib/libicuuc.sl.30.0  .");
         
         psystem("find . -name 'libicuuc30.0.so' -exec ln -s {} libicuuc.so \\;");
         psystem("find . -name 'libicuuc30.0.so' -exec ln -s {} libicuuc30.so \\;");
         
+        psystem("find . -name 'libicuuc30.0.a'  -exec ln -s {} libicuuc.a \\;");
+        psystem("find . -name 'libicuuc30.0.a'  -exec ln -s {} libicuuc30.a \\;");
+                
         psystem("find . -name 'libicuuc.so.30.0' -exec ln -s {} libicuuc.so \\;");
         psystem("find . -name 'libicuuc.so.30.0' -exec ln -s {} libicuuc.so.30 \\;");
 
         psystem("find . -name 'libicuuc.sl.30.0' -exec ln -s {} libicuuc.sl \\;");
         psystem("find . -name 'libicuuc.sl.30.0' -exec ln -s {} libicuuc.sl.30 \\;");
-        
-        # on AIX, copy '.a' version
-        if ( $platform eq "aix") {
-            psystem("ln -s libicudata30.so libicudata30.a");
-            psystem("ln -s libicuuc30.so   libicuuc30.a");
-        }        	
-        
+               
 }
 
 	
diff --git a/src/xercesc/Makefile.in b/src/xercesc/Makefile.in
index 02df11293cc3bbcf067a7e8f76cb81e07cf8f97b..4a5e920ec3ee1e05fa45b24557d2425df144863a 100644
--- a/src/xercesc/Makefile.in
+++ b/src/xercesc/Makefile.in
@@ -252,44 +252,44 @@ endif
 	-${CP} -Rf ${XERCESCROOT}/lib/${REAL_NAME} ${BINTARGETDIR}/lib
 	-${CD} ${BINTARGETDIR}/lib; ln -s ${REAL_NAME} ${SO_NAME}; ln -s ${REAL_NAME} ${LINK_NAME}
 ifeq (${TRANSCODER},ICU)
-	-${CP} -Rf ${ICUROOT}/lib/libicudata26.1.so ${BINTARGETDIR}/lib
-	-${CP} -Rf ${ICUROOT}/lib/libicudata.so.26.1 ${BINTARGETDIR}/lib
-	-${CP} -Rf ${ICUROOT}/lib/libicudata.sl.26.1 ${BINTARGETDIR}/lib
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata26.1.so' -exec ln -s {} libicudata.so \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata26.1.so' -exec ln -s {} libicudata26.so \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.so.26.1' -exec ln -s {} libicudata.so \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.so.26.1' -exec ln -s {} libicudata.so.26 \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.sl.26.1' -exec ln -s {} libicudata.sl \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.sl.26.1' -exec ln -s {} libicudata.sl.26 \;
-	-${CP} -Rf ${ICUROOT}/lib/libicuuc26.1.so ${BINTARGETDIR}/lib
-	-${CP} -Rf ${ICUROOT}/lib/libicuuc.so.26.1 ${BINTARGETDIR}/lib
-	-${CP} -Rf ${ICUROOT}/lib/libicuuc.sl.26.1 ${BINTARGETDIR}/lib
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc26.1.so' -exec ln -s {} libicuuc.so \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc26.1.so' -exec ln -s {} libicuuc26.so \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.so.26.1' -exec ln -s {} libicuuc.so \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.so.26.1' -exec ln -s {} libicuuc.so.26 \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.sl.26.1' -exec ln -s {} libicuuc.sl \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.sl.26.1' -exec ln -s {} libicuuc.sl.26 \;
+	-${CP} -Rf ${ICUROOT}/lib/libicudata30.0.so ${BINTARGETDIR}/lib
+	-${CP} -Rf ${ICUROOT}/lib/libicudata.so.30.0 ${BINTARGETDIR}/lib
+	-${CP} -Rf ${ICUROOT}/lib/libicudata.sl.30.0 ${BINTARGETDIR}/lib
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata30.0.so' -exec ln -s {} libicudata.so \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata30.0.so' -exec ln -s {} libicudata30.so \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.so.30.0' -exec ln -s {} libicudata.so \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.so.30.0' -exec ln -s {} libicudata.so.30 \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.sl.30.0' -exec ln -s {} libicudata.sl \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.sl.30.0' -exec ln -s {} libicudata.sl.30 \;
+	-${CP} -Rf ${ICUROOT}/lib/libicuuc30.0.so ${BINTARGETDIR}/lib
+	-${CP} -Rf ${ICUROOT}/lib/libicuuc.so.30.0 ${BINTARGETDIR}/lib
+	-${CP} -Rf ${ICUROOT}/lib/libicuuc.sl.30.0 ${BINTARGETDIR}/lib
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc30.0.so' -exec ln -s {} libicuuc.so \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc30.0.so' -exec ln -s {} libicuuc30.so \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.so.30.0' -exec ln -s {} libicuuc.so \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.so.30.0' -exec ln -s {} libicuuc.so.30 \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.sl.30.0' -exec ln -s {} libicuuc.sl \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.sl.30.0' -exec ln -s {} libicuuc.sl.30 \;
 else
    ifeq (${MESSAGELOADER},ICU)
-	-${CP} -Rf ${ICUROOT}/lib/libicudata26.1.so ${BINTARGETDIR}/lib
-	-${CP} -Rf ${ICUROOT}/lib/libicudata.so.26.1 ${BINTARGETDIR}/lib
-	-${CP} -Rf ${ICUROOT}/lib/libicudata.sl.26.1 ${BINTARGETDIR}/lib
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata26.1.so' -exec ln -s {} libicudata.so \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata26.1.so' -exec ln -s {} libicudata26.so \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.so.26.1' -exec ln -s {} libicudata.so \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.so.26.1' -exec ln -s {} libicudata.so.26 \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.sl.26.1' -exec ln -s {} libicudata.sl \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.sl.26.1' -exec ln -s {} libicudata.sl.26 \;
-	-${CP} -Rf ${ICUROOT}/lib/libicuuc26.1.so ${BINTARGETDIR}/lib
-	-${CP} -Rf ${ICUROOT}/lib/libicuuc.so.26.1 ${BINTARGETDIR}/lib
-	-${CP} -Rf ${ICUROOT}/lib/libicuuc.sl.26.1 ${BINTARGETDIR}/lib
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc26.1.so' -exec ln -s {} libicuuc.so \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc26.1.so' -exec ln -s {} libicuuc26.so \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.so.26.1' -exec ln -s {} libicuuc.so \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.so.26.1' -exec ln -s {} libicuuc.so.26 \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.sl.26.1' -exec ln -s {} libicuuc.sl \;
-	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.sl.26.1' -exec ln -s {} libicuuc.sl.26 \;
+	-${CP} -Rf ${ICUROOT}/lib/libicudata30.0.so ${BINTARGETDIR}/lib
+	-${CP} -Rf ${ICUROOT}/lib/libicudata.so.30.0 ${BINTARGETDIR}/lib
+	-${CP} -Rf ${ICUROOT}/lib/libicudata.sl.30.0 ${BINTARGETDIR}/lib
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata30.0.so' -exec ln -s {} libicudata.so \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata30.0.so' -exec ln -s {} libicudata30.so \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.so.30.0' -exec ln -s {} libicudata.so \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.so.30.0' -exec ln -s {} libicudata.so.30 \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.sl.30.0' -exec ln -s {} libicudata.sl \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.sl.30.0' -exec ln -s {} libicudata.sl.30 \;
+	-${CP} -Rf ${ICUROOT}/lib/libicuuc30.0.so ${BINTARGETDIR}/lib
+	-${CP} -Rf ${ICUROOT}/lib/libicuuc.so.30.0 ${BINTARGETDIR}/lib
+	-${CP} -Rf ${ICUROOT}/lib/libicuuc.sl.30.0 ${BINTARGETDIR}/lib
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc30.0.so' -exec ln -s {} libicuuc.so \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc30.0.so' -exec ln -s {} libicuuc30.so \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.so.30.0' -exec ln -s {} libicuuc.so \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.so.30.0' -exec ln -s {} libicuuc.so.30 \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.sl.30.0' -exec ln -s {} libicuuc.sl \;
+	-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.sl.30.0' -exec ln -s {} libicuuc.sl.30 \;
    endif
 endif
 ifeq (${MESSAGELOADER},ICU)
diff --git a/src/xercesc/Makefile.incl b/src/xercesc/Makefile.incl
index 52e2b0f6eb0753c5f7d1f0628ad161547bbcc697..4da545af2067fe00797e3f3f0e7514a4b80c4bb7 100644
--- a/src/xercesc/Makefile.incl
+++ b/src/xercesc/Makefile.incl
@@ -244,13 +244,13 @@ ifeq (${PLATFORM}, AIX)
 #endif
 
 ifeq (${TRANSCODER}, ICU)
-    ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc26 -licudata26
+    ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc30 -licudata30
 else
     ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib
 endif
 
 ifeq (${MESSAGELOADER}, ICU)
-    ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc26 -licudata26 -lXercesMessages25
+    ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc30 -licudata30 -lXercesMessages25
 endif
 
 PLATFORM_COMPILE_OPTIONS = -qnotempinc -D_THREAD_SAFE
@@ -267,7 +267,7 @@ EXTRA_LINK_OPTIONS = -bmap:$(XML_OBJ)/${LIBNAME}${SO_TARGET_VERSION}.${SO_TARGET
 DEPDOM_LINK_OPTIONS = -bmap:$(XML_OBJ)/${LIBDEPDOM}${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}.map
 
 SHLIBSUFFIX=.a
-ICUSHLIBSUFFIX=.so
+ICUSHLIBSUFFIX=.a
 ## Compiler switch to embed a library name
 LD_SONAME =
 
@@ -561,17 +561,17 @@ MAKE_SHARED_C = ${PLATFORM_C_COMPILER} -D${PLATFORM} -W l,dll ${LDFLAGS}
 ifeq (${TRANSCODER}, ICU)
 ## OS390BATCH
     ifeq (${OS390BATCH},1)
-    ALLLIBS = "//'${LOADEXP}(IXM26UCX)'"
+    ALLLIBS = "//'${LOADEXP}(IXM30UCX)'"
     else
-    ALLLIBS = ${ICUROOT}/lib/libicuuc26.1.x
+    ALLLIBS = ${ICUROOT}/lib/libicuuc30.0.x
     endif
 else
 ifeq (${TRANSCODER}, Uniconv390)
 ## OS390BATCH
     ifeq (${OS390BATCH},1)
-	 ALLLIBS = "//'${LOADEXP}(IXM26UCX)'"
+	 ALLLIBS = "//'${LOADEXP}(IXM30UCX)'"
     else
-	 ALLLIBS = ${ICUROOT}/lib/libicuuc26.1.x
+	 ALLLIBS = ${ICUROOT}/lib/libicuuc30.0.x
     endif
 else
 	 ALLLIBS =