diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java b/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java
index 7ec22f7..29ae40b 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java
@@ -136,11 +136,12 @@
 		} catch (NullPointerException e) {
 			throw new QueryException("Your query could not be processed. Please make sure it is well-formed.");
 		}
-		
+		log.info("Processing CosmasII query");
 		System.out.println("Processing Cosmas");
 		requestMap.put("@context", "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld");
 //		prepareContext(requestMap);
 		processNode(tree);
+		log.info(requestMap.toString());
 	}
 	
 	@SuppressWarnings("unchecked")
@@ -333,6 +334,11 @@
 							LinkedHashMap<String, Object> term = makeTerm();
 							termGroupOperands.add(term);
 							String layer = attrNode.getChild(0).toStringTree();
+							String[] splitted = layer.split("/");
+							if (splitted.length > 1) {
+								term.put("foundry", splitted[0]);
+								layer = splitted[1];
+							}
 							term.put("layer", translateMorph(layer));
 							term.put("key", attrNode.getChild(1).toStringTree());
 							String match = getNodeCat(attrNode).equals("EQ") ? "eq" : "ne";
@@ -344,6 +350,11 @@
 							for (j=1; j<attrNode.getChildCount(); j++) {
 								LinkedHashMap<String, Object> term = makeTerm();
 								String layer = attrNode.getChild(0).toStringTree();
+								String[] splitted = layer.split("/");
+								if (splitted.length > 1) {
+									term.put("foundry", splitted[0]);
+									layer = splitted[1];
+								}
 								term.put("layer", translateMorph(layer));
 								term.put("key", attrNode.getChild(j).toStringTree());
 								String match = getNodeCat(attrNode).equals("EQ") ? "eq" : "ne";
@@ -887,8 +898,10 @@
 		  
 		  String treestring = tree.toStringTree();
 		  if (treestring.contains("<mismatched token") || treestring.contains("<error") || treestring.contains("<unexpected")) {
+			  log.error("Invalid tree. Could not parse Cosmas query. Make sure it is well-formed.");
 			  throw new RecognitionException();
 		  } 
+		  
 		  return tree;
 	}
 	
@@ -915,7 +928,8 @@
 //				"Der:sa,-pe,+te ",
 				"#ELEM(W POS!='N V' title=tada)",
 				"#ELEM(W ANA != 'N V')",
-				"#ELEM(W ANA != 'N V' Genre = Sport)"
+				"#ELEM(W ANA != 'N V' Genre = Sport)",
+				"(&Baum #IN #ELEM(xip/c=np)) #IN(L) #ELEM(s)"
 //				"(&Baum #IN #ELEM(NP)) #IN(L) #ELEM(S)"
 				};
 //		CosmasTree.debug=true;
