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",
