diff --git a/src/main/java/de/ids_mannheim/korap/KorapSearch.java b/src/main/java/de/ids_mannheim/korap/KorapSearch.java
index 0f0eb0e..7481d3e 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapSearch.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapSearch.java
@@ -1,6 +1,7 @@
 package de.ids_mannheim.korap;
 
 import java.io.*;
+import java.util.*;
 
 import org.apache.lucene.search.spans.SpanQuery;
 import de.ids_mannheim.korap.query.wrap.SpanQueryWrapper;
@@ -37,6 +38,8 @@
     private String error;
     private String warning;
 
+    private HashSet<String> fields;
+
     private JsonNode request;
 
     public SearchContext context;
@@ -269,6 +272,12 @@
 	return this.itemsPerResource;
     };
 
+    // Get map of fields to lift
+    public HashSet<String> getFields () {
+	if (this.fields != null)
+	    return this.fields;
+	return (HashSet<String>) null;
+    };
 
     public KorapSearch setCollection (KorapCollection kc) {
 	this.collection = kc;
diff --git a/src/test/java/de/ids_mannheim/korap/search/TestKorapSearch.java b/src/test/java/de/ids_mannheim/korap/search/TestKorapSearch.java
index 6ee8366..59ac327 100644
--- a/src/test/java/de/ids_mannheim/korap/search/TestKorapSearch.java
+++ b/src/test/java/de/ids_mannheim/korap/search/TestKorapSearch.java
@@ -670,6 +670,46 @@
 	assertEquals(0, kr.getStartIndex());
     };
 
+
+
+    @Test
+    public void searchJSONmultipleClassesBug () throws IOException {
+	// Construct index
+	KorapIndex ki = new KorapIndex();
+	// Indexing test files
+	ki.addDocFile(
+            1,getClass().getResource("/bzk/D59-00089.json.gz").getFile(), true
+	);
+	ki.addDocFile(
+            2,getClass().getResource("/bzk/D59-00089.json.gz").getFile(), true
+	);
+
+	ki.commit();
+
+	String json = getString(
+	    getClass().getResource("/queries/bugs/multiple_classes.jsonld").getFile()
+        );
+	
+	KorapSearch ks = new KorapSearch(json);
+	KorapResult kr = ks.run(ki);
+	assertEquals(
+            kr.getQuery(),
+	    "{4: spanNext({1: spanNext({2: tokens:s:ins}, {3: tokens:s:Leben})}, tokens:s:gerufen)}"
+        );
+	assertEquals(
+	    kr.getMatch(0).getSnippetBrackets(),
+	    "... sozialistischen Initiative\" eine neue politische Gruppierung " +
+	    "[{4:{1:{2:ins} {3:Leben}} gerufen}] hatten. " +
+	    "Pressemeldungen zufolge haben sich in ..."
+        );
+
+	assertEquals(2, kr.getTotalResults());
+	assertEquals(0, kr.getStartIndex());
+    };
+
+
+
+
     @Test
     public void searchJSONCollection () throws IOException {
 
diff --git a/src/test/resources/queries/bugs/multiple_classes.jsonld b/src/test/resources/queries/bugs/multiple_classes.jsonld
new file mode 100644
index 0000000..3b5345c
--- /dev/null
+++ b/src/test/resources/queries/bugs/multiple_classes.jsonld
@@ -0,0 +1,74 @@
+{
+  "@context": "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
+  "query": {
+    "@type" : "korap:group",
+    "class" : 4,
+    "classOut" : 4,
+    "operands" : [
+      {
+        "@type" : "korap:group",
+        "operands" : [
+          {
+            "@type" : "korap:group",
+            "class" : 1,
+            "classOut" : 1,
+            "operands" : [
+              {
+                "@type" : "korap:group",
+                "operands" : [
+                  {
+                    "@type" : "korap:group",
+                    "class" : 2,
+                    "classOut" : 2,
+                    "operands" : [
+                      {
+                        "@type" : "korap:token",
+                        "wrap" : {
+                          "@type" : "korap:term",
+                          "key" : "ins",
+                          "layer" : "orth",
+                          "match" : "match:eq"
+                        }
+                      }
+                    ],
+                    "operation" : "operation:class"
+                  },
+                  {
+                    "@type" : "korap:group",
+                    "class" : 3,
+                    "classOut" : 3,
+                    "operands" : [
+                      {
+                        "@type" : "korap:token",
+                        "wrap" : {
+                          "@type" : "korap:term",
+                          "key" : "Leben",
+                          "layer" : "orth",
+                          "match" : "match:eq"
+                        }
+                      }
+                    ],
+                    "operation" : "operation:class"
+                  }
+                ],
+                "operation" : "operation:sequence"
+              }
+            ],
+            "operation" : "operation:class"
+          },
+          {
+            "@type" : "korap:token",
+            "wrap" : {
+              "@type" : "korap:term",
+              "key" : "gerufen",
+              "layer" : "orth",
+              "match" : "match:eq"
+            }
+          }
+        ],
+        "operation" : "operation:sequence"
+      }
+    ],
+    "operation" : "operation:class"
+  }
+}
