diff --git a/src/main/java/de/ids_mannheim/korap/KorapIndex.java b/src/main/java/de/ids_mannheim/korap/KorapIndex.java
index e2cc91a..7a75071 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapIndex.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapIndex.java
@@ -230,12 +230,18 @@
 	return this.searcher;
     };
 
+
+    /**
+     * Close index writer
+     */
     public void closeWriter () throws IOException {
 	if (this.writer != null)
 	    this.writer.close();
     };
 
-
+    /**
+     * Close index reader
+     */
     public void closeReader () throws IOException {
 	if (readerOpen) {
 	    this.reader.close();
@@ -571,8 +577,8 @@
     public KorapMatch getMatchInfo (String idString,
 				    String field,
 				    boolean info,
-				    ArrayList<String> foundry,
-				    ArrayList<String> layer,
+				    List<String> foundry,
+				    List<String> layer,
 				    boolean includeSpans,
 				    boolean includeHighlights,
 				    boolean extendToSentence) throws QueryException {
diff --git a/src/main/java/de/ids_mannheim/korap/KorapQuery.java b/src/main/java/de/ids_mannheim/korap/KorapQuery.java
index a80a675..b1b7e2f 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapQuery.java
@@ -254,6 +254,9 @@
 			if (constraint.has("key"))
 			    unit = constraint.get("key").asText();
 
+			if (unit.equals("t"))
+			    throw new QueryException("Text based distances are not supported yet");
+
 			int min, max;
 			if (constraint.has("boundary")) {
 			    Boundary b = new Boundary(constraint.get("boundary"), 1,1);
