diff --git a/Changes b/Changes
index 221a821..834683c 100644
--- a/Changes
+++ b/Changes
@@ -3,6 +3,7 @@
 	- [workaround] Reintroduced empty collection support,
 	  as Koral still creates them (diewald)
 	- [bugfix] Escaped characters now supported in MutiTerm (diewald)
+	- [feature] Deserialization of flags (diewald)
 
 0.51 2015-03-17
         - This is a major version (prepared for the GitHub release)
diff --git a/src/main/java/de/ids_mannheim/korap/KrillQuery.java b/src/main/java/de/ids_mannheim/korap/KrillQuery.java
index ef00667..e6ff9d0 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillQuery.java
@@ -3,6 +3,7 @@
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Iterator;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -1028,9 +1029,22 @@
                 : false;
         Boolean isCaseInsensitive = false;
 
+        // Legacy
         if (json.has("caseInsensitive")
-                && json.get("caseInsensitive").asBoolean())
+            && json.get("caseInsensitive").asBoolean()) {
             isCaseInsensitive = true;
+        }
+
+        // Flags
+        else if (json.has("flags") && json.get("flags").isArray()) {
+            Iterator<JsonNode> flags = json.get("flags").elements();
+            while (flags.hasNext()) {
+                if (flags.next().asText().equals("flags:caseInsensitive")) {
+                    isCaseInsensitive = true;
+                    break;
+                };
+            };
+        };
 
         StringBuilder value = new StringBuilder();
 
diff --git a/src/test/java/de/ids_mannheim/korap/query/TestKrillQueryJSON.java b/src/test/java/de/ids_mannheim/korap/query/TestKrillQueryJSON.java
index a33e080..ae21667 100644
--- a/src/test/java/de/ids_mannheim/korap/query/TestKrillQueryJSON.java
+++ b/src/test/java/de/ids_mannheim/korap/query/TestKrillQueryJSON.java
@@ -450,6 +450,17 @@
                 "spanOverlap(<tokens:s />, spanNext(tokens:tt/p:CARD, SpanMultiTermQueryWrapper(tokens:/tt/p:N.*/)))");
     };
 
+    @Test
+    public void queryJSONflags1 () throws QueryException {
+        // buchstabe/i
+        SpanQueryWrapper sqwi = jsonQuery(getClass().getResource(
+                "/queries/flags/caseInsensitive.jsonld").getFile());
+
+        assertEquals(
+                sqwi.toQuery().toString(),
+                "tokens:i:buchstabe");
+    };
+
 
     public static String getString (String path) {
         StringBuilder contentBuilder = new StringBuilder();
diff --git a/src/test/resources/queries/flags/caseInsensitive.jsonld b/src/test/resources/queries/flags/caseInsensitive.jsonld
new file mode 100644
index 0000000..7320f52
--- /dev/null
+++ b/src/test/resources/queries/flags/caseInsensitive.jsonld
@@ -0,0 +1,23 @@
+{
+  "@context":"http://korap.ids-mannheim.de/ns/koral/0.3/context.jsonld",
+  "errors":[],
+  "warnings":[],
+  "messages":[],
+  "collection":{},
+  "query":{
+    "@type":"koral:token",
+    "wrap":{
+      "@type":"koral:term",
+      "layer":"orth",
+      "key":"buchstabe",
+      "match":"match:eq",
+      "flags":["flags:caseInsensitive"]
+    }
+  },
+  "meta":{
+    "startPage":1,
+    "count":25,
+    "cutOff":true,
+    "context":"paragraph"
+  }
+}
