diff --git a/Changes b/Changes
index 71704d4..90856b9 100644
--- a/Changes
+++ b/Changes
@@ -1,4 +1,4 @@
-0.55.7 2017-01-13
+0.55.7 2017-01-24
         - [bugfix] Sorted results in unordered element distance query results (margaretha)
         - [bugfix] Throw error on optional operands in distance
           queries (diewald)
@@ -23,6 +23,7 @@
         - [bugfix] issue #16 (added skipTo in ElementDistanceSpan)
           (margaretha)
         - [bugfix] Fixed class ordering of highlights (diewald)
+        - [feature] warn on use of "operation:merge" (diewald)
 
 0.55.6 2016-08-10
         - [bugfix] distance with key "t" uses default foundry (diewald)
diff --git a/misc/errorcodes.md b/misc/errorcodes.md
index 0a01892..04bd64c 100644
--- a/misc/errorcodes.md
+++ b/misc/errorcodes.md
@@ -65,6 +65,7 @@
 771: "Arbitrary elements with attributes are currently not supported"
 772: "'Any' elements are currently not supported in position operations"
 773: "Negative elements are currently not supported in position operations"
+774: "Merge operation is currently not supported"
 780: "This query matches everywhere"
 781: "Optionality of query is ignored"
 782: "Exclusivity of query is ignored"
diff --git a/src/main/java/de/ids_mannheim/korap/KrillQuery.java b/src/main/java/de/ids_mannheim/korap/KrillQuery.java
index 45f1dda..3cfd7ee 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillQuery.java
@@ -442,6 +442,11 @@
                 /*throw new QueryException(765,
                   "Relations are currently not supported");*/
 
+			// Gracefully warn on merge support
+			case "operation:merge":
+				this.addWarning(774, "Merge operation is currently not supported");
+				return _fromKoral(operands.get(0));
+				
                 // Deprecated in favor of operation:junction
             case "operation:or":
                 return this._operationJunctionFromJson(operands);
diff --git a/src/test/java/de/ids_mannheim/korap/query/TestKrillQueryJSON.java b/src/test/java/de/ids_mannheim/korap/query/TestKrillQueryJSON.java
index af53472..34fb3f1 100644
--- a/src/test/java/de/ids_mannheim/korap/query/TestKrillQueryJSON.java
+++ b/src/test/java/de/ids_mannheim/korap/query/TestKrillQueryJSON.java
@@ -601,18 +601,20 @@
 
 
     @Test
-    public void queryJSONregexRewrite2 () throws QueryException {
-        // "der" [.*] [.*?] [.+] [.+?]
+    public void queryJSONmerge () throws QueryException {
+        // treat merging gracefully
         String json = getString(getClass()
-                .getResource("/queries/sequence/regex-rewrite-2.jsonld")
+                .getResource("/queries/merge.jsonld")
                 .getFile());
         KrillQuery kq = new KrillQuery("tokens");
-
         assertEquals(kq.fromKoral(json).toQuery().toString(),
-                "focus(254: spanContain(<tokens:base/s:t />, {254: spanExpansion(tokens:s:der, []{4, 4}, right)}))");
+                "spanNext(tokens:s:der, tokens:s:Baum)");
+		assertEquals(kq.getWarning(0).getCode(), 774);
     };
 
 
+	
+
     public static String getString (String path) {
         StringBuilder contentBuilder = new StringBuilder();
         try {
diff --git a/src/test/resources/queries/merge.jsonld b/src/test/resources/queries/merge.jsonld
new file mode 100644
index 0000000..9b50760
--- /dev/null
+++ b/src/test/resources/queries/merge.jsonld
@@ -0,0 +1,34 @@
+{
+  "@context": "http://ids-mannheim.de/ns/KorAP/json-ld/v0.2/context.jsonld",
+  "query": {
+    "@type": "koral:group",
+    "operation":"operation:merge",
+    "operands": [
+      {
+        "@type": "koral:group",
+        "operation": "operation:sequence",
+        "inOrder": true,
+        "operands": [
+          {
+            "@type": "koral:token",
+            "wrap": {
+              "match": "match:eq",
+              "layer": "orth",
+              "key": "der",
+              "@type": "koral:term"
+            }
+          },
+          {
+            "wrap": {
+              "match": "match:eq",
+              "layer": "orth",
+              "key": "Baum",
+              "@type": "koral:term"
+            },
+            "@type": "koral:token"
+          }
+        ]
+      }
+    ]
+  }
+}
