diff --git a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
index 5d6292f..671e70f 100644
--- a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
+++ b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
@@ -1446,7 +1446,7 @@
                     try {
                         val zipFile = ApacheZipFile(File(zipPath))
                         val entries = zipFile.entries.toList()
-                            .filter { !it.isDirectory && it.name.matches(Regex(".*(data|tokens|structure|morpho|dependency|sentences|constituency)\\.xml$")) }
+                            .filter { !it.isDirectory && it.name.matches(Regex(".*(data|tokens|structure|morpho|dependency|sentences|constituency|header)\\.xml$")) }
                         
                         val entriesByTextId = entries.groupBy { getTextIdFromPath(it.name) }
                         
diff --git a/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KrillJsonGeneratorTest.kt b/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KrillJsonGeneratorTest.kt
index e678fd7..28f1db5 100644
--- a/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KrillJsonGeneratorTest.kt
+++ b/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KrillJsonGeneratorTest.kt
@@ -396,4 +396,41 @@
             }
         }
     }
+
+    @Test
+    fun testMetadataPresence() {
+        val baseZip = loadResource("wud24_sample.zip").path
+        
+        val generatedTar = ensureKrillTar("metadata_test") { outputDir ->
+            arrayOf(
+                "-t", "krill",
+                "-D", outputDir.path,
+                baseZip
+            )
+        }
+
+        val kotlinJsons = readKrillJson(generatedTar)
+        assertTrue(kotlinJsons.isNotEmpty(), "Should have generated Krill JSON files")
+
+        // Test that essential metadata fields are present
+        kotlinJsons.forEach { (textId, json) ->
+            // Check for fields structure
+            assertTrue(json.contains("\"fields\""), "Text $textId should have fields metadata")
+            
+            // Check for common metadata fields that should be in header.xml
+            val metadataFields = listOf(
+                "\"title\"", "\"author\"", "\"pubPlace\"", "\"publisher\"",
+                "\"availability\"", "\"textType\"", "\"textDomain\""
+            )
+            
+            var hasMetadata = false
+            metadataFields.forEach { field ->
+                if (json.contains(field)) {
+                    hasMetadata = true
+                }
+            }
+            assertTrue(hasMetadata, "Text $textId should have at least some metadata fields from header.xml")
+        }
+    }
+
 }
