diff --git a/src/main/antlr/cosmas/c2ps.g b/src/main/antlr/cosmas/c2ps.g
index 5a5d46d..ed56030 100644
--- a/src/main/antlr/cosmas/c2ps.g
+++ b/src/main/antlr/cosmas/c2ps.g
@@ -9,7 +9,6 @@
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 
 grammar c2ps;
-//import c2ps_regex;
 
 options { output=AST; backtrack=true; k=5;}
 tokens  {C2PQ; OPBED; OPTS; OPBEG; OPEND; OPNHIT; OPALL; OPLEM; OPPROX;
@@ -139,7 +138,6 @@
 fragment RE_alter    : ( ( RE_char | RE_chgroup ) '|' RE_expr )+;
 fragment RE_chgroup  : '[' RE_char+ ']';
 fragment RE_chars    : (RE_char | RE_chgroup | ( '(' RE_expr ')')) (('+'|'*'|FOCC)'?'? |'?')? ;
-//fragment RE_expr   : (RE_char | RE_alter | RE_chgroup | RE_group)+;
 fragment RE_expr   : (RE_alter | RE_chars)+;
 fragment REGEX       : '"'  (RE_expr | '\'' | ':' )* '"';
 
@@ -155,17 +153,6 @@
 	| WORD '/' WORD '!'? '=' WORD ':' (WORD|REGEX)
 	;
 
-/*
-fragment MORPHEXPR
-	: (WORD|regex)
-	| WORD ':' (WORD|regex)
-	| WORD '!'? '=' (WORD|regex) 
-	| WORD '!'? '=' WORD ':' (WORD|regex)
-	| WORD '/' WORD '!'? '=' (WORD|regex)
-	| WORD '/' WORD '!'? '=' WORD ':' (WORD|regex)
-	;
-*/
-	
 OP_MORPH:	'MORPH(' 
 				MORPHEXPR (' '* '&' ' '* MORPHEXPR)* ' '* 
 			')' ;
@@ -176,7 +163,6 @@
 //
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 
-
 c2ps_query 
 	:	searchExpr EOF -> ^(C2PQ searchExpr);
 
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessor.java b/src/main/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessor.java
index b3e1d45..cabf32c 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessor.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessor.java
@@ -492,14 +492,14 @@
         ((ArrayList<Object>) classRefCheck.get("operands")).add(posgroup);
         LinkedHashMap<String, Object> focusGroup = null;
         if ((boolean) positionOptions.get("matchall") == true) {
-            focusGroup = KoralObjectGenerator.makeResetReference();
+            focusGroup = KoralObjectGenerator.makeClassRefOp("classRefOp:delete", 
+                    new Integer[]{128+classCounter++}, 128+classCounter);
             ((ArrayList<Object>) focusGroup.get("operands")).add(classRefCheck);
         }
         else { // match only first argument
             focusGroup = KoralObjectGenerator.wrapInReference(classRefCheck,
-                    128 + classCounter - 1);
+                    128 + classCounter);
         }
-        System.err.println(positionOptions);
         // wrap in 'merge' operation if grouping option is set
         if (positionOptions.containsKey("grouping")) {
             if (positionOptions.get("grouping").equals(true)) {
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/util/KoralObjectGenerator.java b/src/main/java/de/ids_mannheim/korap/query/serialize/util/KoralObjectGenerator.java
index 45135ef..804b8f9 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/util/KoralObjectGenerator.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/util/KoralObjectGenerator.java
@@ -237,6 +237,7 @@
         return makeReference(classRef, false);
     }
 
+    @Deprecated
     public static LinkedHashMap<String, Object> makeResetReference() {
         LinkedHashMap<String, Object> group = new LinkedHashMap<String, Object>();
         group.put("@type", "korap:reference");
