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 489a00d..11f15bc 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
@@ -414,10 +414,14 @@
 			ParseTree edgeAnnoSpec) {
 		LinkedHashMap<String, Object> edgeAnno = new LinkedHashMap<String, Object>();
 		edgeAnno.put("@type", "korap:term");
-		ParseTree labelNode = edgeAnnoSpec.getChild(0);
+		ParseTree qNameNode = edgeAnnoSpec.getChild(0);
 		ParseTree matchOperatorNode = edgeAnnoSpec.getChild(1);
 		ParseTree textSpecNode = edgeAnnoSpec.getChild(2);
-		edgeAnno.put("layer", labelNode.getChild(0).toStringTree(parser));
+		System.err.println(edgeAnnoSpec.toStringTree(parser));
+		ParseTree layerNode = getFirstChildWithCat(qNameNode, "layer");
+		ParseTree foundryNode = getFirstChildWithCat(qNameNode, "foundry");
+		if (foundryNode!=null) edgeAnno.put("foundry", foundryNode.getChild(0).toStringTree(parser));
+		if (layerNode!=null) edgeAnno.put("layer", layerNode.getChild(0).toStringTree(parser));
 		edgeAnno.putAll(parseTextSpec(textSpecNode));
 		edgeAnno.put("match", parseMatchOperator(matchOperatorNode));
 		return edgeAnno;
@@ -592,7 +596,8 @@
 //			 "\"Mann\" & node & #2 >[cat=\"NP\"] #1",
 			 "node & node & #1 . #2",
 			 "node & node & #1 .2,6 #2",
-			 "node & node & #1 .* #2"
+			 "node & node & #1 .* #2",
+			 "node & node & #2 ->label[mate/coref=\"true\"] #1"
 
 //			"node & node & #2 ->[foundry/layer=\"key\"],2,4 #1",
 			};
diff --git a/src/test/java/AqlTreeTest.java b/src/test/java/AqlTreeTest.java
index 15a5c0b..00be416 100644
--- a/src/test/java/AqlTreeTest.java
+++ b/src/test/java/AqlTreeTest.java
@@ -149,6 +149,17 @@
 		map = aqlt.getRequestMap().get("query").toString();
 		assertEquals(dom1.replaceAll(" ", ""), map.replaceAll(" ", ""));
 		
+		query = "node & node & #2 ->label[mate/coref=\"true\"] #1";
+		String dom2 = 
+				"{@type=korap:group, operation=operation:relation, operands=[" +
+						"{@type=korap:span}," +
+						"{@type=korap:span}" +
+				"], relation={@type=korap:relation, reltype=label, wrap=[{@type=korap:term, foundry=mate, layer=coref, key=true, match=match:eq}]}" +
+				"}";
+		aqlt = new AqlTree(query);
+		map = aqlt.getRequestMap().get("query").toString();
+		assertEquals(dom2.replaceAll(" ", ""), map.replaceAll(" ", ""));
+		
 	}
 	
 	@Test
