diff --git a/Changes b/Changes
index 31298c5..9f159b0 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,6 @@
+0.64.1 2025-05-26
+    - [bugfix] Ignore line endings in indexer tests. (diewald)
+
 0.64.0 2025-04-30
     - [feature] Support signed matchids to prevent consecutive
       positional requests (diewald)
diff --git a/pom.xml b/pom.xml
index 8709c17..ff2ac48 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,7 +35,7 @@
 
   <groupId>de.ids-mannheim.korap.krill</groupId>
   <artifactId>Krill</artifactId>
-  <version>0.64.0</version>
+  <version>0.64.1</version>
   <packaging>jar</packaging>
 
   <name>Krill</name>
diff --git a/src/test/java/de/ids_mannheim/korap/TestIndexer.java b/src/test/java/de/ids_mannheim/korap/TestIndexer.java
index bb8a152..8cc7694 100644
--- a/src/test/java/de/ids_mannheim/korap/TestIndexer.java
+++ b/src/test/java/de/ids_mannheim/korap/TestIndexer.java
@@ -1,6 +1,7 @@
 package de.ids_mannheim.korap;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -33,21 +34,21 @@
     public void testArguments () throws IOException {
         Indexer.main(new String[] { "-c", "src/test/resources/krill.properties",
                                     "-i", "src/test/resources/bzk"});
-        assertEquals("Added or updated 1 file.\n", outputStream.toString());
+        assertTrue(outputStream.toString().startsWith("Added or updated 1 file."));
     }
 
     @Test
     public void testOutputArgument () throws IOException {
         Indexer.main(new String[] { "-c", "src/test/resources/krill.properties",
                                     "-i", "src/test/resources/bzk", "-o", "test-output"});
-        assertEquals("Added or updated 1 file.\n", outputStream.toString());
+        assertTrue(outputStream.toString().startsWith("Added or updated 1 file."));
     }
 
     @Test
     public void testMultipleInputFiles () throws IOException {
         Indexer.main(new String[] { "-c", "src/test/resources/krill.properties",
                                     "-i", "src/test/resources/wiki"});
-        assertEquals("Added or updated 19 files.\n", outputStream.toString());
+        assertTrue(outputStream.toString().startsWith("Added or updated 19 files."));
     }
 
 
@@ -58,7 +59,7 @@
                 "-i", "src/test/resources/bzk",
                 "-a"});
         logger.info(outputStream.toString());
-        assertEquals(outputStream.toString(), "Added 1 file.\n");
+        assertTrue(outputStream.toString().startsWith("Added 1 file."));
     }
 
     
@@ -68,7 +69,7 @@
                                     "-i",
                                     "src/test/resources/bzk;src/test/resources/goe;src/test/resources/sgbr",
                                     "-o", "test-index"});
-        assertEquals("Added or updated 5 files.\n", outputStream.toString());
+        assertTrue(outputStream.toString().startsWith("Added or updated 5 files."));
     }
 
     @Test
@@ -103,7 +104,7 @@
                 "-o", "test-index2"
             });
         logger.info(outputStream.toString());
-        assertEquals(outputStream.toString(), "Added 1 file.\n");
+        assertTrue(outputStream.toString().startsWith("Added 1 file."));
     }
 
     @Test
@@ -119,7 +120,7 @@
         
         Indexer.main(new String[] { "-c", tempPropertiesFile.getAbsolutePath(),
                 "-i", "src/test/resources/bzk", "-o", "test-output-1"});
-        assertEquals("Added or updated 1 file.\n", outputStream.toString());
+        assertTrue(outputStream.toString().startsWith("Added or updated 1 file."));
         
         tempPropertiesFile.delete();
     }
