diff --git a/src/main/java/de/ids_mannheim/korap/index/AbstractDocument.java b/src/main/java/de/ids_mannheim/korap/index/AbstractDocument.java
index 207a9cb..2979822 100644
--- a/src/main/java/de/ids_mannheim/korap/index/AbstractDocument.java
+++ b/src/main/java/de/ids_mannheim/korap/index/AbstractDocument.java
@@ -361,7 +361,9 @@
         return this.getFieldValue("ID");
     };
 
-    @JsonAnyGetter
+    //@JsonAnyGetter
+    @Deprecated
+    @JsonIgnore
     public Map<String, JsonNode> getLegacyMetaFields () {
 
         Iterator<MetaField> mfIterator = mFields.iterator();
diff --git a/src/main/java/de/ids_mannheim/korap/response/Match.java b/src/main/java/de/ids_mannheim/korap/response/Match.java
index 1eceb5a..c5ab6ab 100644
--- a/src/main/java/de/ids_mannheim/korap/response/Match.java
+++ b/src/main/java/de/ids_mannheim/korap/response/Match.java
@@ -26,6 +26,7 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.fasterxml.jackson.databind.node.TextNode;
 
 import de.ids_mannheim.korap.index.AbstractDocument;
 import de.ids_mannheim.korap.index.PositionsToOffset;
@@ -2489,7 +2490,15 @@
 		while (fIter.hasNext()) {
             MetaField mf = fIter.next();
             fields.add(mf.toJsonNode());
+
+            // Legacy flat field support
+            String mfs = mf.key;
+            String value = this.getFieldValue(mfs);
+            if (value != null)
+                json.set(mfs, new TextNode(value));
 		};
+
+        this.addMessage(0, "Support for flat field values is eprecated");
         
         return json;
     };
diff --git a/src/main/java/de/ids_mannheim/korap/response/Text.java b/src/main/java/de/ids_mannheim/korap/response/Text.java
index 2cf3e6d..68dab3c 100644
--- a/src/main/java/de/ids_mannheim/korap/response/Text.java
+++ b/src/main/java/de/ids_mannheim/korap/response/Text.java
@@ -8,6 +8,9 @@
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.TextNode;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
@@ -39,8 +42,26 @@
 
 
     public String toJsonString () {
-        JsonNode json = (JsonNode) this.toJsonNode();
+        ObjectNode json = (ObjectNode) this.toJsonNode();
 
+		ArrayNode fields = json.putArray("fields");
+       
+		// Iterate over all fields
+		Iterator<MetaField> fIter = mFields.iterator();
+		while (fIter.hasNext()) {
+            MetaField mf = fIter.next();
+            fields.add(mf.toJsonNode());
+
+            // Legacy flat field support
+            String mfs = mf.key;
+            String value = this.getFieldValue(mfs);
+            if (value != null)
+                json.set(mfs, new TextNode(value));
+		};
+
+        this.addMessage(0, "Support for flat field values is eprecated");
+
+        
         // Match was no match
         if (json.size() == 0)
             return "{}";
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 353d428..bbf1b3e 100644
--- a/src/test/java/de/ids_mannheim/korap/search/TestMetaFields.java
+++ b/src/test/java/de/ids_mannheim/korap/search/TestMetaFields.java
@@ -262,8 +262,7 @@
         assertEquals(0, res.at("/matches/0/UID").asInt());
         assertEquals("KED/KLX/03212", res.at("/matches/0/textSigle").asText());
         assertTrue(res.at("/matches/0/title").isMissingNode());
-        // assertEquals("data:,Kinder", res.at("/matches/0/KED.corpusRcpntLabel").asText());
-        assertTrue(res.at("/matches/0/KED.corpusRcpntLabel").isMissingNode());
+        assertEquals("data:,Kinder", res.at("/matches/0/KED.corpusRcpntLabel").asText());
         assertFalse(res.at("/matches/0/fields").isMissingNode());
 
         Iterator fieldIter = res.at("/matches/0/fields").elements();
