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 0515961..d1cdbc6 100644
--- a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXml2Conllu.kt
+++ b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXml2Conllu.kt
@@ -165,6 +165,12 @@
         System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", threads.toString())
     }
 
+    @Option(
+        names = ["--overwrite", "-o"],
+        description = ["Overwrite existing files"]
+    )
+    var overwrite: Boolean = false
+
     private var taggerName: String? = null
     private var taggerModel: String? = null
     @Option(
@@ -356,6 +362,10 @@
         if (outputFormat == OutputFormat.KORAPXML) {
             morphoZipOutputStream!!.close()
             val outputMorphoZipFileName = zipFilePath.replace(Regex("\\.zip$"), ".".plus(getMorphoFoundry()).plus(".zip"))
+            if (File(outputMorphoZipFileName).exists() && !overwrite) {
+                LOGGER.severe("Output file $outputMorphoZipFileName already exists. Use --overwrite to overwrite.")
+                exitProcess(1)
+            }
             File(outputMorphoZipFileName).writeBytes(byteArrayOutputStream!!.toByteArray())
         }
     }
diff --git a/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KorapXml2ConlluTest.kt b/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KorapXml2ConlluTest.kt
index 9c8fe4d..6794534 100644
--- a/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KorapXml2ConlluTest.kt
+++ b/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KorapXml2ConlluTest.kt
@@ -3,6 +3,7 @@
 import org.junit.After
 import org.junit.Before
 import java.io.ByteArrayOutputStream
+import java.io.File
 import java.io.PrintStream
 import java.net.URL
 import kotlin.test.Test
@@ -250,4 +251,30 @@
             "9\tentzücke\t_\t_\tVVFIN\tnumber=sg|person=3|tense=pres|mood=subj\t_\t_\t_\t_\n"
         )
     }
+
+    @Test
+    fun korapXmlOutputWorks() {
+        val sourceFile = loadResource("wdf19.zip").path
+        val tmpSourceFileName = createTempFile("tmp", ".zip", null).absolutePath
+        File(sourceFile).copyTo(File(tmpSourceFileName), true)
+
+        val args = arrayOf("-o", "-f", "zip", tmpSourceFileName)
+        debug(args)
+
+        val resultFile = tmpSourceFileName.toString().replace(".zip", ".base.zip")
+        assert(File(resultFile).exists())
+    }
+
+    @Test
+    fun overwriteWorks() {
+        val sourceFile = loadResource("wdf19.zip").path
+        val tmpSourceFileName = createTempFile("tmp", ".zip", null).absolutePath
+        File(sourceFile).copyTo(File(tmpSourceFileName), true)
+        val resultFile = tmpSourceFileName.toString().replace(".zip", ".base.zip")
+        File(resultFile).createNewFile()
+        val args = arrayOf("-o", "-f", "zip", tmpSourceFileName)
+        debug(args)
+        assert(File(resultFile).exists())
+        assert(File(resultFile).length() > 0)
+     }
 }
