diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/AbstractSyntaxTree.java b/src/main/java/de/ids_mannheim/korap/query/serialize/AbstractSyntaxTree.java
index a5418eb..fe1cae1 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/AbstractSyntaxTree.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/AbstractSyntaxTree.java
@@ -101,7 +101,10 @@
 	
 	protected LinkedHashMap<String, Object> makeRepetition(int min, int max) {
 		LinkedHashMap<String, Object> group = makeGroup("repetition");
-		group.put("repetition", makeBoundary(min, max));
+		group.put("boundary", makeBoundary(min, max));
+		group.put("min", min);
+		group.put("max", max);
+		warningMsgs.add("Deprecated 2014-07-24: 'min' and 'max' to be supported until 6 months from deprecation date.");
 		return group;
 	}
 	
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java b/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java
index 776009c..0a1db9a 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java
@@ -92,8 +92,11 @@
 			ParseTree quantification = getFirstChildWithCat(node, "repetition");
 			if (quantification != null) {
 				LinkedHashMap<String,Object> quantGroup = makeGroup("repetition");
-				int[] minmax = parseRepetition(quantification);
-				quantGroup.put("repetition", makeBoundary(minmax[0], minmax[1]));
+				Integer[] minmax = parseRepetition(quantification);
+				quantGroup.put("boundary", makeBoundary(minmax[0], minmax[1]));
+				if (minmax[0] != null) quantGroup.put("min", minmax[0]);
+				if (minmax[1] != null) quantGroup.put("max", minmax[1]);
+				warningMsgs.add("Deprecated 2014-07-24: 'min' and 'max' to be supported until 6 months from deprecation date.");
 				putIntoSuperObject(quantGroup);
 				objectStack.push(quantGroup);
 				stackedObjects++;
@@ -352,7 +355,7 @@
 	 * the minimal number of repetitions of the quantified element, and the second 
 	 * element representing the maximal number of repetitions 
 	 */
-	private int[] parseRepetition(ParseTree node) {
+	private Integer[] parseRepetition(ParseTree node) {
 		int min = 0, max = 0;
 		// (repetition) node can be of two types: 'kleene' or 'range'
 		ParseTree repetitionTypeNode = node.getChild(0);
@@ -379,7 +382,7 @@
 			else if (hasChild(repetitionTypeNode, ",")) min = 0;
 			else min = max;
 		}
-		return new int[]{min,max};
+		return new Integer[]{min,max};
 	}
 
 	private String parseFrame(ParseTree node) {
@@ -531,7 +534,7 @@
 			ParseTree nextSibling = emptySegments.getChild(i + 1);
 			if (child.toStringTree(parser).equals("(emptyToken [ ])")) {
 				if (nextSibling != null && getNodeCat(nextSibling).equals("repetition")) {
-					int[] minmax = parseRepetition(nextSibling);
+					Integer[] minmax = parseRepetition(nextSibling);
 					min += minmax[0];
 					max += minmax[1];
 				} else {
