diff --git a/maven/lib-gwt.sh b/maven/lib-gwt.sh
index 8e9e00c..7a66847 100644
--- a/maven/lib-gwt.sh
+++ b/maven/lib-gwt.sh
@@ -6,19 +6,11 @@
     echo "WARNING: Errors while deploying files, examine output above."
     echo "Leaving intermediate files at:"
     echo "$RANDOM_DIR"
-    for i in dev user servlet
-    do
-      echo "$jarExpandDir-${i}"
-    done
     find $pomDir -name pom.xml -o -name pom.xml.asc
     echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
   else
     # Clean up
     rm -rf $RANDOM_DIR
-    for i in dev user servlet
-    do
-      rm -rf $jarExpandDir-${i}
-    done
     # Remove POMs & ASCs, leaving only templates
     find $pomDir -name pom.xml -o -name pom.xml.asc -delete
   fi
@@ -81,8 +73,6 @@
   JSINTEROP_JAVADOC_FILE_PATH=$RANDOM_DIR/jsinterop-javadoc.jar
   jar cf $JSINTEROP_JAVADOC_FILE_PATH -C $pomDir/jsinterop README.javadoc
 
-  jarExpandDir=/tmp/tmp-jar-expand-dir-$RANDOM
-
   # Generate POMs with correct version
   for template in `find $pomDir -name pom-template.xml`
   do
@@ -92,6 +82,30 @@
     popd > /dev/null
   done
 
+  # Silently skip Elemental if it doesn't exist
+  gwtLibs='dev user servlet codeserver'
+  if [ -f $GWT_EXTRACT_DIR/gwt-elemental.jar ]; then
+    gwtLibs="${gwtLibs} elemental"
+  fi
+
+  jsinteropLibs='annotations'
+
+  # Create jsinterop libs
+  for i in $jsinteropLibs
+  do
+    echo "Creating jsinterop-${i}.jar and jsinterop-${i}-sources.jar"
+    zip $GWT_EXTRACT_DIR/gwt-user.jar --copy --out $GWT_EXTRACT_DIR/jsinterop-${i}.jar \
+        "jsinterop/${i}/*"
+    zip -d $GWT_EXTRACT_DIR/jsinterop-${i}.jar \
+        "jsinterop/${i}/*.java" "jsinterop/${i}/*.gwt.xml"
+    zip $GWT_EXTRACT_DIR/gwt-user.jar --copy --out $GWT_EXTRACT_DIR/jsinterop-${i}-sources.jar \
+        "jsinterop/${i}/*.java" "jsinterop/${i}/*.gwt.xml"
+    echo "Removing jsinterop/${i} from gwt-user"
+    zip -d $GWT_EXTRACT_DIR/gwt-user.jar "jsinterop/${i}/*"
+    echo "Removing jsinterop/${i} from gwt-servlet"
+    zip -d $GWT_EXTRACT_DIR/gwt-servlet.jar "jsinterop/${i}/*"
+  done
+
   # Remove bundled third-parties from gwt-dev
   echo "Removing ASM classes from gwt-dev"
   zip -d $GWT_EXTRACT_DIR/gwt-dev.jar "org/objectweb/asm/*"
@@ -102,14 +116,6 @@
       "META-INF/services/javax.servlet.*" "META-INF/services/javax.websocket.*" "META-INF/services/org.eclipse.jetty.*" "META-INF/services/org.apache.juli.*" \
       "org/eclipse/jetty/*" "javax/servlet/*" "javax/el/*" "org/apache/jasper/*" "org/apache/el/*" "org/apache/juli/*" "org/apache/tomcat/*"
 
-  # Silently skip Elemental if it doesn't exist
-  gwtLibs='dev user servlet codeserver'
-  if [ -f $GWT_EXTRACT_DIR/gwt-elemental.jar ]; then
-    gwtLibs="${gwtLibs} elemental"
-  fi
-
-  jsinteropLibs='annotations'
-
   for i in $gwtLibs
   do
     CUR_FILE=`ls $GWT_EXTRACT_DIR/gwt-${i}.jar`
@@ -119,43 +125,8 @@
     echo "Removing INDEX.LIST from gwt-${i}"
     zip -d $CUR_FILE META-INF/INDEX.LIST
 
-    SOURCES_FILE=gwt-${i}-sources.jar
-    curExpandDir=$jarExpandDir-${i}
-
-    rm -rf $curExpandDir
-    mkdir -p $curExpandDir
-    unzip -q $CUR_FILE -d $curExpandDir
-    chmod -R ugo+rwx $curExpandDir
-    pushd $curExpandDir > /dev/null
-
-    rm -rf javafilelist
-    find . -name "*.java" > javafilelist
-    if [ -s javafilelist ]; then
-      jar cf $SOURCES_FILE @javafilelist
-    fi
-
-    if [[ "$i" == "user" ]]; then
-      # Create jsinterop jars
-      for i in $jsinteropLibs
-      do
-        # Get rid of JsInterop classes from gwt-user.jar and gwt-user-sources
-        echo "Removing jsinterop/${i} from gwt-user"
-        zip -d $CUR_FILE "jsinterop/${i}/*"
-        echo "Removing jsinterop/${i} from gwt-user-sources"
-        zip -d $SOURCES_FILE "jsinterop/${i}/*"
-
-        rm -rf jsinterop-${i}-classfilelist jsinterop-${i}-javafilelist
-        find "./jsinterop/${i}" -type f -not -name "*.java" -not -name "*.gwt.xml" > jsinterop-${i}-classfilelist
-        if [ -s jsinterop-${i}-classfilelist ]; then
-          jar cf jsinterop-${i}.jar @jsinterop-${i}-classfilelist
-        fi
-        find "./jsinterop/${i}" -name "*.java" -o -name "*.gwt.xml" > jsinterop-${i}-javafilelist
-        if [ -s jsinterop-${i}-javafilelist ]; then
-          jar cf jsinterop-${i}-sources.jar @jsinterop-${i}-javafilelist
-        fi
-      done
-    fi
-    popd > /dev/null
+    SOURCES_FILE=$GWT_EXTRACT_DIR/gwt-${i}-sources.jar
+    zip -q $CUR_FILE --copy --out $SOURCES_FILE "*.java"
   done
 
   # push parent poms
@@ -166,14 +137,14 @@
     CUR_FILE=`ls $GWT_EXTRACT_DIR/gwt-${i}.jar`
     gwtPomFile=$pomDir/gwt/gwt-$i/pom.xml
     SOURCES_FILE=gwt-${i}-sources.jar
-    SOURCES_PATH_FILE=$jarExpandDir-${i}/$SOURCES_FILE
+    SOURCES_PATH_FILE=$GWT_EXTRACT_DIR/$SOURCES_FILE
     # If there are no sources, use gwt-user sources.
     # This is a bit hacky but Sonatype requires a
     # source jar for Central, and lack of sources
     # should only happen for gwt-servlet which is
     # basically a subset of gwt-user.
     if [ ! -f $SOURCES_PATH_FILE ]; then
-      SOURCES_PATH_FILE=$jarExpandDir-user/gwt-user-sources.jar
+      SOURCES_PATH_FILE=$GWT_EXTRACT_DIR/gwt-user-sources.jar
     fi
 
     maven-deploy-file $mavenRepoUrl $mavenRepoId "$CUR_FILE" $gwtPomFile "$JAVADOC_FILE_PATH" "$SOURCES_PATH_FILE" || die
@@ -194,8 +165,8 @@
 
   for i in $jsinteropLibs
   do
-    maven-deploy-file $mavenRepoUrl $mavenRepoId $jarExpandDir-user/jsinterop-${i}.jar $pomDir/jsinterop/${i}/pom.xml \
-        $JSINTEROP_JAVADOC_FILE_PATH $jarExpandDir-user/jsinterop-${i}-sources.jar \
+    maven-deploy-file $mavenRepoUrl $mavenRepoId $GWT_EXTRACT_DIR/jsinterop-${i}.jar $pomDir/jsinterop/${i}/pom.xml \
+        $JSINTEROP_JAVADOC_FILE_PATH $GWT_EXTRACT_DIR/jsinterop-${i}-sources.jar \
          || die
   done
 
