Bugfix for big class highlights
diff --git a/src/main/java/de/ids_mannheim/korap/KorapQuery.java b/src/main/java/de/ids_mannheim/korap/KorapQuery.java
index f517c4a..b49e2f6 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapQuery.java
@@ -49,6 +49,8 @@
     // This advices the java compiler to ignore all loggings
     public static final boolean DEBUG = false;
 
+    private String warning;
+
     public static final byte
 	OVERLAP      = SpanWithinQuery.OVERLAP,
 	REAL_OVERLAP = SpanWithinQuery.REAL_OVERLAP,
@@ -356,8 +358,21 @@
 		return sseqqw;
 
 	    case "operation:class":
+		number = 0;
 
-		if (json.has("class")) {
+		
+		if (json.has("classOut")) {
+		    number = json.get("classOut").asInt(0);
+		}
+		// Legacy classes
+		else if (json.has("class")) {
+		    number = json.get("class").asInt(0);
+		};
+
+		if (json.has("classRefCheck"))
+		    this.addWarning("classRefCheck is not yet supported. Results may not be correct");
+
+		if (number > 0) {
 		    if (operands.size() != 1)
 			throw new QueryException(
 			    612,
@@ -569,7 +584,6 @@
     };
 
 
-
     private SpanQueryWrapper _termFromJSON (JsonNode json) throws QueryException {
 	if (!json.has("key") || json.get("key").asText().length() < 1)
 	    throw new QueryException(612, "Terms and spans have to provide key attributes");
@@ -641,6 +655,27 @@
 	return this.tag(value.toString());
     };
 
+    public boolean hasWarning () {
+	if (this.warning != null)
+	    return true;
+	return true;
+    };
+
+    public String getWarning () {
+        return this.warning;
+    };
+
+    public void addWarning (String warning) {
+	if (this.warning == null)
+	    this.warning = warning;
+	else
+	    this.warning += "; " + warning;
+    };
+
+    public void setWarning (String warning) {
+	this.warning = warning;
+    };
+
 
     // SpanRegexQueryWrapper
     /**
diff --git a/src/main/java/de/ids_mannheim/korap/KorapSearch.java b/src/main/java/de/ids_mannheim/korap/KorapSearch.java
index 059bb97..935635a 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapSearch.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapSearch.java
@@ -57,18 +57,22 @@
 	    // "query" value
 	    if (this.request.has("query")) {
 		try {
-		    SpanQueryWrapper qw = new KorapQuery("tokens").fromJSON(this.request.get("query"));
+		    KorapQuery kq = new KorapQuery("tokens");
+		    SpanQueryWrapper qw = kq.fromJSON(this.request.get("query"));
 
 		    if (qw.isEmpty()) {
 			this.error = "This query matches everywhere";
 		    }
 		    else {
-		    
 			this.query = qw.toQuery();
 			if (qw.isOptional())
 			    this.addWarning("Optionality of query is ignored");
 			if (qw.isNegative())
 			    this.addWarning("Exclusivity of query is ignored");
+
+			// Set query deserialization warning
+			if (kq.hasWarning())
+			    this.addWarning(kq.getWarning());
 		    };
 		}
 		catch (QueryException q) {
@@ -79,6 +83,7 @@
 		this.error = "No query defined";
 	    };
 
+	    // Report warning coming from the request
 	    if (this.request.has("warning"))
 		this.addWarning(this.request.get("warning").asText());