diff --git a/Changes b/Changes
index db65563..068d9b0 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,6 @@
+0.64.2 2025-06-18
+    - [bugfix] Restore rewrites in Meta. (diewald)
+
 0.64.1 2025-05-26
     - [bugfix] Ignore line endings in indexer tests. (diewald)
     - [bugfix] Correctly cleanup test directories. (diewald)
diff --git a/pom.xml b/pom.xml
index 34d6311..1bcebe5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,7 +35,7 @@
 
   <groupId>de.ids-mannheim.korap.krill</groupId>
   <artifactId>Krill</artifactId>
-  <version>0.64.1</version>
+  <version>0.64.2</version>
   <packaging>jar</packaging>
 
   <name>Krill</name>
diff --git a/src/main/java/de/ids_mannheim/korap/KrillMeta.java b/src/main/java/de/ids_mannheim/korap/KrillMeta.java
index b1636fb..b7a174d 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillMeta.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillMeta.java
@@ -34,6 +34,8 @@
     private ArrayList<String> fields;
     HashSet<Integer> highlights;
 
+    private JsonNode rewrites;
+    
     // Timeout search after milliseconds
     private long timeout = (long) 120_000;
     // private long timeoutStart = Long.MIN_VALUE;
@@ -160,6 +162,9 @@
         if (json.has("context"))
             this.context.fromJson(json.get("context"));
 
+        if (json.has("rewrites"))
+            this.rewrites = json.get("rewrites");
+        
         // Defined highlights
         if (json.has("highlight")) {
 
@@ -270,6 +275,11 @@
     };
 
 
+    public JsonNode getRewrites () {
+        return this.rewrites;
+    };    
+
+    
     public KrillMeta setContext (SearchContext context) {
         this.context = context;
         return this;
@@ -424,6 +434,9 @@
             json.set("highlight", highlightNode);
         };
 
+        if (this.getRewrites() != null)
+            json.set("rewrites", this.getRewrites());
+        
         return json;
     };
 };
diff --git a/src/test/java/de/ids_mannheim/korap/search/TestMetaFields.java b/src/test/java/de/ids_mannheim/korap/search/TestMetaFields.java
index 44db7e1..8d85d78 100644
--- a/src/test/java/de/ids_mannheim/korap/search/TestMetaFields.java
+++ b/src/test/java/de/ids_mannheim/korap/search/TestMetaFields.java
@@ -151,6 +151,10 @@
         assertEquals("match-GOE_AGX.00002-p7-8",
                 res.at("/matches/0/matchID").asText());
 
+        assertFalse(res.at("/meta/rewrites").isMissingNode());
+        assertEquals("Kustvakt", res.at("/meta/rewrites/0/src").asText());
+
+        
         // All fields
         jsonString = getJsonString(getClass()
                 .getResource("/queries/metas/fields_all.jsonld").getFile());
@@ -182,6 +186,7 @@
         // assertEquals("372-377", res.at("/matches/0/pages").asText());
         assertEquals("match-GOE_AGX.00002-p7-8",
                 res.at("/matches/0/matchID").asText());
+        assertTrue(res.at("/meta/rewrites").isMissingNode());
 
 
         // @All fields
diff --git a/src/test/resources/queries/metas/fields_no.jsonld b/src/test/resources/queries/metas/fields_no.jsonld
index 969f95e..2faa43a 100644
--- a/src/test/resources/queries/metas/fields_no.jsonld
+++ b/src/test/resources/queries/metas/fields_no.jsonld
@@ -3,7 +3,16 @@
   "announcements" : [],
   "errors" : [],
   "meta" : {
-    "count":9
+    "count":9,
+    "rewrites":[
+      {
+       "@type" : "koral:rewrite",
+        "src" : "Kustvakt",
+        "origin" : "Kustvakt",
+        "scope" : "count",
+        "source" : 10
+      }
+    ]
   },
   "query" : {
     "@type" : "koral:token",
