Index: branches/ALPS/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManager.cs
===================================================================
--- branches/ALPS/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManager.cs	(revision 11507)
+++ branches/ALPS/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManager.cs	(revision 11677)
@@ -23,8 +23,8 @@
 using System.Collections.Generic;
 using System.IO;
+using System.IO.Compression;
 using System.Linq;
 using System.ServiceModel;
 using HeuristicLab.PluginInfrastructure.Manager;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.PluginInfrastructure.Advanced {
@@ -183,29 +183,33 @@
 
     private void Unpack(byte[] zippedPackage) {
-      using (ZipInputStream s = new ZipInputStream(new MemoryStream(zippedPackage))) {
-        ZipEntry theEntry;
-        while ((theEntry = s.GetNextEntry()) != null) {
-          string directoryName = pluginDir;
-          string fileName = Path.GetFileName(theEntry.Name);
-          // create directory 
-          if (!string.IsNullOrEmpty(directoryName)) {
-            Directory.CreateDirectory(directoryName);
-          }
-          if (!string.IsNullOrEmpty(fileName)) {
-            string fullPath = Path.Combine(directoryName, fileName);
-            string fullDirPath = Path.GetDirectoryName(fullPath);
-            if (!Directory.Exists(fullDirPath)) Directory.CreateDirectory(fullDirPath);
-            using (FileStream streamWriter = File.Create(fullPath)) {
-              int size = 2048;
-              byte[] data = new byte[2048];
-              while (true) {
-                size = s.Read(data, 0, data.Length);
-                if (size > 0) {
-                  streamWriter.Write(data, 0, size);
-                } else {
-                  break;
+      using (MemoryStream memStream = new MemoryStream(zippedPackage)) {
+        using (ZipArchive zip = new ZipArchive(memStream, ZipArchiveMode.Read)) {
+          foreach (var theEntry in zip.Entries) {
+            string directoryName = pluginDir;
+            string fileName = Path.GetFileName(theEntry.Name);
+            // create directory 
+            if (!string.IsNullOrEmpty(directoryName)) {
+              Directory.CreateDirectory(directoryName);
+            }
+            if (!string.IsNullOrEmpty(fileName)) {
+              string fullPath = Path.Combine(directoryName, fileName);
+              string fullDirPath = Path.GetDirectoryName(fullPath);
+              if (!Directory.Exists(fullDirPath)) Directory.CreateDirectory(fullDirPath);
+              using (FileStream streamWriter = File.Create(fullPath)) {
+                int size = 2048;
+                byte[] data = new byte[2048];
+
+                using (BinaryReader reader = new BinaryReader(theEntry.Open())) {
+                  while (true) {
+                    size = reader.Read(data, 0, data.Length);
+                    if (size > 0) {
+                      streamWriter.Write(data, 0, size);
+                    } else {
+                      break;
+                    }
+                  }
                 }
+                streamWriter.Close();
               }
-              streamWriter.Close();
             }
           }
Index: branches/ALPS/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.cs
===================================================================
--- branches/ALPS/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.cs	(revision 11507)
+++ branches/ALPS/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.cs	(revision 11677)
@@ -25,9 +25,9 @@
 using System.Drawing;
 using System.IO;
+using System.IO.Compression;
 using System.Linq;
 using System.ServiceModel;
 using System.Windows.Forms;
 using HeuristicLab.PluginInfrastructure.Manager;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.PluginInfrastructure.Advanced {
@@ -262,10 +262,8 @@
     private static byte[] CreateZipPackage(IPluginDescription plugin) {
       using (MemoryStream stream = new MemoryStream()) {
-        ZipFile zipFile = new ZipFile(stream);
-        zipFile.BeginUpdate();
+        ZipArchive zipFile = new ZipArchive(stream, ZipArchiveMode.Create);
         foreach (var file in plugin.Files) {
-          zipFile.Add(file.Name);
-        }
-        zipFile.CommitUpdate();
+          zipFile.CreateEntry(file.Name);
+        }
         stream.Seek(0, SeekOrigin.Begin);
         return stream.GetBuffer();
