diff --git a/app/build.gradle b/app/build.gradle
index 8be8109..361ba8d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -46,6 +46,7 @@
     implementation 'org.apache.opennlp:opennlp-tools:2.5.3'
     implementation 'org.slf4j:slf4j-simple:2.1.0-alpha1'
     implementation 'org.apache.ant:ant:1.10.15'
+    implementation 'org.apache.commons:commons-compress:1.27.1'
 
 }
 
diff --git a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXml2Conllu.kt b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXml2Conllu.kt
index 3e6738c..14d9f20 100644
--- a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXml2Conllu.kt
+++ b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXml2Conllu.kt
@@ -2,6 +2,8 @@
 
 import de.ids_mannheim.korapxmltools.AnnotationToolBridgeFactory.Companion.parserFoundries
 import de.ids_mannheim.korapxmltools.AnnotationToolBridgeFactory.Companion.taggerFoundries
+import org.apache.commons.compress.archivers.zip.Zip64Mode
+import org.apache.commons.compress.archivers.zip.ZipArchiveEntry
 import org.w3c.dom.Document
 import org.w3c.dom.Element
 import org.w3c.dom.NodeList
@@ -28,7 +30,7 @@
 import java.util.zip.ZipEntry
 
 import java.util.zip.ZipFile
-import java.util.zip.ZipOutputStream
+import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream
 import javax.xml.parsers.DocumentBuilder
 import javax.xml.parsers.DocumentBuilderFactory
 import javax.xml.transform.OutputKeys
@@ -260,7 +262,7 @@
 
     var dbFactory: DocumentBuilderFactory? = null
     var dBuilder: DocumentBuilder? = null
-    var morphoZipOutputStream: ZipOutputStream? = null
+    var morphoZipOutputStream: ZipArchiveOutputStream? = null
 
     fun String.hasCorrespondingBaseZip(): Boolean {
         if (!this.matches(Regex(".*\\.([^/.]+)\\.zip$"))) return false
@@ -342,7 +344,7 @@
                 if (tagger != null) {
                     targetFoundry = tagger.foundry
                 }
-            } else {
+            } else if (parserName != null) {
                 targetFoundry = parserName!!
             }
             dbFactory = DocumentBuilderFactory.newInstance()
@@ -357,7 +359,9 @@
                 exitProcess(1)
             }
             val fileOutputStream = FileOutputStream(outputMorphoZipFileName)
-            morphoZipOutputStream = ZipOutputStream(fileOutputStream)
+            morphoZipOutputStream = ZipArchiveOutputStream(fileOutputStream).apply {
+                setUseZip64(Zip64Mode.Always)
+            }
         }
         if (zipFilePath.hasCorrespondingBaseZip()) {
             val zips = arrayOf(zipFilePath, zipFilePath.correspondingBaseZip()!!)
@@ -572,13 +576,12 @@
             val entryPath = if (parserName != null)  docId.replace(Regex("[_.]"), "/").plus("/$parserName/").plus("dependency.xml")
             else
                 docId.replace(Regex("[_.]"), "/").plus("/$morphoFoundry/").plus("morpho.xml")
-            val zipEntry = ZipEntry(entryPath)
-            // val zipEntry = org.apache.tools.zip.ZipEntry(entryPath)
-            // zipEntry.unixMode = 65535
+            val zipEntry = ZipArchiveEntry(entryPath)
+            zipEntry.unixMode = ZIP_ENTRY_UNIX_MODE
             synchronized(morphoZipOutputStream!!) {
-                morphoZipOutputStream!!.putNextEntry(zipEntry)
+                morphoZipOutputStream!!.putArchiveEntry(zipEntry)
                 morphoZipOutputStream!!.write(output.toString().toByteArray())
-                morphoZipOutputStream!!.closeEntry()
+                morphoZipOutputStream!!.closeArchiveEntry()
             }
             output.clear()
         }
