Index: java/installer2/.classpath
===================================================================
--- java/installer2/.classpath	(revision 781)
+++ java/installer2/.classpath	(revision 782)
@@ -27,4 +27,6 @@
 	<classpathentry combineaccessrules="false" kind="src" path="/HTTPFileDownloader"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/ModDepotAccess"/>
+	<classpathentry kind="lib" path="/_ThirdPartyLibs/commons-compress-1.5.jar"/>
+	<classpathentry kind="lib" path="/_ThirdPartyLibs/xz-1.2.jar"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
Index: java/installer2/src/net/oni2/aeinstaller/backend/packages/unpack/Unpacker.java
===================================================================
--- java/installer2/src/net/oni2/aeinstaller/backend/packages/unpack/Unpacker.java	(revision 781)
+++ java/installer2/src/net/oni2/aeinstaller/backend/packages/unpack/Unpacker.java	(revision 782)
@@ -6,8 +6,8 @@
 import java.io.InputStream;
 import java.util.Enumeration;
-import java.util.zip.ZipEntry;
 import java.util.zip.ZipException;
-import java.util.zip.ZipFile;
 
+import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
+import org.apache.commons.compress.archivers.zip.ZipFile;
 import org.apache.commons.io.FileUtils;
 
@@ -124,7 +124,7 @@
 						target.mkdirs();
 
-						for (Enumeration<? extends ZipEntry> e = zf.entries(); e
+						for (Enumeration<? extends ZipArchiveEntry> e = zf.getEntries(); e
 								.hasMoreElements();) {
-							ZipEntry ze = e.nextElement();
+							ZipArchiveEntry ze = e.nextElement();
 							if (ze.getName().toLowerCase()
 									.endsWith("/mod_info.cfg")
@@ -138,9 +138,9 @@
 						}
 
-						for (Enumeration<? extends ZipEntry> e = zf.entries(); e
+						for (Enumeration<? extends ZipArchiveEntry> e = zf.getEntries(); e
 								.hasMoreElements();) {
 							if (state == EState.INTERRUPTED)
 								return;
-							ZipEntry ze = e.nextElement();
+							ZipArchiveEntry ze = e.nextElement();
 							if (!ze.isDirectory()) {
 								if (ze.getName().startsWith(pathStartName)) {
@@ -163,4 +163,7 @@
 										}
 										fileOut.close();
+										
+										if ((ze.getUnixMode() & 0x0111) != 0)
+											targetFile.setExecutable(true);
 									}
 								}
