diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/AqlTree.java b/src/main/java/de/ids_mannheim/korap/query/serialize/AqlTree.java
index 04e6b21..e52e018 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/AqlTree.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/AqlTree.java
@@ -2,6 +2,7 @@
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
@@ -248,9 +249,17 @@
 				LinkedHashMap<String, Object> term = makeTerm();
 				object.put("wrap", term);
 			} else if (firstChildNodeCat.equals("qName")) {	// only (foundry/)?layer specified
-				// TODO may also be token!
-				object = makeSpan();
-				object.putAll(parseQNameNode(node.getChild(0)));
+				// may be token or span, depending on indicated layer! (e.g. cnx/cat=NP or mate/pos=NN)
+				HashMap<String, Object> qNameParse = parseQNameNode(node.getChild(0));
+				if (Arrays.asList(new String[]{"pos", "lemma", "morph", "tok"}).contains(qNameParse.get("layer"))) {
+					object = makeToken();
+					LinkedHashMap<String, Object> term = makeTerm();
+					object.put("wrap", term);
+					term.putAll(qNameParse);
+				} else {
+					object = makeSpan();
+					object.putAll(qNameParse);
+				}
 			} else if (firstChildNodeCat.equals("textSpec")) {
 				object = makeToken();
 				LinkedHashMap<String, Object> term = makeTerm();
@@ -259,7 +268,7 @@
 			}
 				
 			if (node.getChildCount() == 3) {  			// (foundry/)?layer=key specification
-				if (firstChildNodeCat.equals("tok")) {
+				if (object.get("@type").equals("korap:token")) {
 					HashMap<String, Object> term = (HashMap<String, Object>) object.get("wrap");
 					term.putAll(parseTextSpec(node.getChild(2)));
 					term.put("match", parseMatchOperator(node.getChild(1)));
diff --git a/src/test/java/AqlTreeTest.java b/src/test/java/AqlTreeTest.java
index 27bb1dd..43b72ab 100644
--- a/src/test/java/AqlTreeTest.java
+++ b/src/test/java/AqlTreeTest.java
@@ -72,7 +72,7 @@
 		assertEquals(layers1.replaceAll(" ", ""), map.replaceAll(" ", ""));
 		
 		query = "treetagger/pos=\"NN\"";
-		String layers2 = "{@type=korap:token, wrap={@type=korap:term, foundry=treetagger, layer=pos, key=NN, match=match:eq}}";
+		String layers2 = "{@type=korap:token, wrap={@type=korap:term, foundry=treetagger, layer=pos, match=match:eq, key=NN}}";
 		aqlt = new AqlTree(query);
 		map = aqlt.getRequestMap().get("query").toString();
 		assertEquals(layers2.replaceAll(" ", ""), map.replaceAll(" ", ""));
