diff --git a/Changes b/Changes
index 1018287..cd6a742 100755
--- a/Changes
+++ b/Changes
@@ -1,4 +1,4 @@
-0.25 2018-01-09
+0.25 2018-01-31
         - Make annotation helper configurable.
         - Support multiple prefixes in menus.
         - Show annotation tooltips in table views.
@@ -7,6 +7,7 @@
         - Make tutorial queries localizable for different default corpora.
         - Update dependencies.
         - Add lwc annotations.
+        - Adapt support for new relation serialization by Krill.
 
 0.24 2017-11-22
         - Added support for relation visualization.
diff --git a/dev/demo/relationsdemo.js b/dev/demo/relationsdemo.js
index d2dd2a3..7519ffe 100644
--- a/dev/demo/relationsdemo.js
+++ b/dev/demo/relationsdemo.js
@@ -168,6 +168,7 @@
 	"<span xlink:title=\"lwc/d:NK\" xlink:type=\"simple\" xlink:href=\"#token-WDD17/982/72848-p15838\">letztes</span>"+
 	" "+
 	"<span xml:id=\"token-WDD17/982/72848-p15838\">"+
+    
 	"<span xlink:title=\"lwc/d:--\" xlink:type=\"simple\" xlink:href=\"#token-WDD17/982/72848-p15836-15839\">mal</span>"+
 	"</span>"+
 	": "+
@@ -261,48 +262,48 @@
 relSnippet3 =
  	"<span class=\"context-left\"></span>"+
 	"<span class=\"match\">"+
-	"<span xml:id=\"token-WDD17/982/72848-p15836-15839\">"+
-	"<span xlink:title=\"lwc/d:NK\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15838\">Ein</span>"+
+	"  <span xml:id=\"token-WDD17/982/72848-p15836-15839\">"+
+	"    <span xlink:title=\"lwc/d:NK\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15838\">Ein</span>"+
 	" "+
-	"<span xlink:title=\"lwc/d:NK\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15838\">letztes</span>"+
+	"    <span xlink:title=\"lwc/d:NK\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15838\">letztes</span>"+
 	" "+
-	"<span xml:id=\"token-WDD17/982/72848-p15838\">"+
-	"<span xlink:title=\"lwc/d:--\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15836-15839\">mal</span>"+
-	"</span>"+
+	"    <span xml:id=\"token-WDD17/982/72848-p15838\">"+
+  //     s1464_n2 "ein" -> ":"
+	"      <span xlink:title=\"lwc/d:--\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15836-15839\">mal</span>"+
+	"    </span>"+
 	": "+
-	"<span xml:id=\"token-WDD17/982/72848-p15839-15840\">"+
-	"<span xlink:title=\"lwc/d:--\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15839-15840\">AL</span>"+
-	"</span>"+
-	"</span>"+
-	"<span xlink:show=\"other\" data-action=\"join\" xlink:href=\"#token-WDD17/982/72848-p15839-15840\">"+
+	"    <span xml:id=\"token-WDD17/982/72848-p15839-15840\">"+
+	"      <span xlink:title=\"lwc/d:--\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15839-15840\">AL</span>"+
+	"    </span>"+
+	"  </span>"+
+	"  <span xlink:show=\"other\" data-action=\"join\" xlink:href=\"#token-WDD17/982/72848-p15839-15840\">"+
 	":"+
-	"<span xml:id=\"token-WDD17/982/72848-p15840-15846\">"+
-	"<span xml:id=\"token-WDD17/982/72848-p15840\">"+
-	"<span xlink:title=\"lwc/d:--\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15840-15846\">halt</span>"+
-	"</span>"+
-	"</span>"+
-	"</span>"+
-	// "<span xml:id=\"token-WDD17/982/72848-p15840-15846\">"+
-	"<span xlink:show=\"other\" data-action=\"join\" xlink:href=\"#token-WDD17/982/72848-p15840-15846\">"+
+	"    <span xml:id=\"token-WDD17/982/72848-p15840-15846\">"+
+	"      <span xml:id=\"token-WDD17/982/72848-p15840\">"+
+	"        <span xlink:title=\"lwc/d:--\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15840-15846\">halt</span>"+
+	"      </span>"+
+	"    </span>"+
+	"  </span>"+
+	"  <span xlink:show=\"other\" data-action=\"join\" xlink:href=\"#token-WDD17/982/72848-p15840-15846\">"+
 	" "+
-	"<span xlink:title=\"lwc/d:NK\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15842\">den</span>"+
+	"    <span xlink:title=\"lwc/d:NK\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15842\">den</span>"+
 	" "+
-	"<span xml:id=\"token-WDD17/982/72848-p15842\">"+
-	"<span xlink:title=\"lwc/d:OA\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15843\">Ball</span>"+
-	"</span>"+
+	"    <span xml:id=\"token-WDD17/982/72848-p15842\">"+
+	"      <span xlink:title=\"lwc/d:OA\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15843\">Ball</span>"+
+	"    </span>"+
 	" "+
-	"<span xml:id=\"token-WDD17/982/72848-p15843\">"+
-	"<span xlink:title=\"lwc/d:PD\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15840\">flach</span>"+
-	"</span>"+
+	"    <span xml:id=\"token-WDD17/982/72848-p15843\">"+
+	"      <span xlink:title=\"lwc/d:PD\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15840\">flach</span>"+
+	"    </span>"+
 	", "+
-	"<mark>"+
-	"<span xlink:title=\"lwc/d:MO\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15845\">ganz</span>"+
+	"    <mark>"+
+	"      <span xlink:title=\"lwc/d:MO\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15845\">ganz</span>"+
 	" "+
-	"<span xml:id=\"token-WDD17/982/72848-p15845\">"+
-	"<span xlink:title=\"lwc/d:CJ\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15843\">flach</span>"+
-	"</span>"+
-	"</mark>"+
-	"</span>"+
+	"      <span xml:id=\"token-WDD17/982/72848-p15845\">"+
+	"        <span xlink:title=\"lwc/d:CJ\" xlink:show=\"none\" xlink:href=\"#token-WDD17/982/72848-p15843\">flach</span>"+
+	"      </span>"+
+	"    </mark>"+
+	"  </span>"+
 	"</span>"+
 	"<span class=\"context-right\"></span>";
 
diff --git a/dev/js/src/match/relations.js b/dev/js/src/match/relations.js
index 921c699..4a1ddc2 100644
--- a/dev/js/src/match/relations.js
+++ b/dev/js/src/match/relations.js
@@ -105,34 +105,60 @@
         // Element node
         if (c.nodeType == 1) {
 
-          var xmlid, target;
+          var xmlid, target, start, end;
 
           // Node is an identifier
           if (c.hasAttribute('xml:id')) {
 
             // Remember that pos has this identifier
             xmlid = c.getAttribute('xml:id');
-            this.temp['target'][xmlid] = [this.temp['pos'], this.temp['pos']];
+            // this.temp['target'][xmlid] =
+            start = this.temp['pos'];
+            end = this.temp['pos'];
           }
 
-          // Node is a relation
+          // Node is a link
+          // Stricter: && c.hasAttribute('xlink:show')
           else if (c.hasAttribute('xlink:href')) {
-            var label;
 
-            // Get target id
-            target = c.getAttribute('xlink:href').replace(/^#/, "");
+            // Node is a continuation
+            if (c.getAttribute('xlink:show') == "other" &&
+                c.hasAttribute('data-action') &&
+                c.getAttribute('data-action') == "join"
+               ) {
+              xmlid = c.getAttribute('xlink:href').replace(/^#/, "");
+              start = this.temp['pos'];
+              end = this.temp['pos'];
 
-            if (c.hasAttribute('xlink:title')) {
-              label = this._clean(c.getAttribute('xlink:title'));
+              // this.temp['target'][xmlid][1] = this.temp['pos'] -1;
+              // console.log("Here");
+            }
+
+            // Node is a relation
+            // Stricter: c.getAttribute('xlink:show') == "none"
+            else {
+              var label;
+
+              // Get target id
+              target = c.getAttribute('xlink:href').replace(/^#/, "");
+
+              if (c.hasAttribute('xlink:title')) {
+                label = this._clean(c.getAttribute('xlink:title'));
+              };
+
+              // Remember the defined edge
+              var edge = {
+                label    : label,
+                srcStart : this.temp['pos'],
+                targetID : target
+              };
+
+              // TEMP: Hot-fix for root relations
+              if (!label.match(/--$/) && !label.match(/ROOT$/)) {
+                this.temp['edges'].push(edge);
+              };
+
             };
-
-            // Remember the defined edge
-            var edge = {
-              label    : label,
-              srcStart : this.temp['pos'],
-              targetID : target
-            };
-            this.temp['edges'].push(edge);
           };
 
           // Go on with child nodes
@@ -140,8 +166,25 @@
             this._parse(0, c.childNodes, mark);
           };
 
+
+          // The element is a defined anchor
           if (xmlid !== undefined) {
-            this.temp['target'][xmlid][1] = this.temp['pos'] -1;
+
+            // this.temp['target'][xmlid][1] = this.temp['pos'] -1;
+
+            // Element already defined
+            if (this.temp['target'][xmlid] !== undefined) {
+              var newtarget = this.temp['target'][xmlid];
+              end = this.temp['pos'] - 1;
+              newtarget[0] = start < newtarget[0] ? start : newtarget[0];
+              newtarget[1] = end > newtarget[1] ? end : newtarget[1];
+            }
+
+            // Element not yet defined
+            else {
+              end = this.temp['pos'] - 1;
+              this.temp['target'][xmlid] = [start, end];
+            };
 
             /*
             console.log('Target ' + xmlid + ' spans from ' +
@@ -152,8 +195,13 @@
             */
             xmlid = undefined;
           }
+
+          // Current element describes an arc
           else if (target !== undefined) {
+
+            // TODO: This does not work yet!
             edge["srcEnd"] = this.temp['pos'] -1;
+            // console.log('Here');
 
             /*
             console.log('Source spans from ' +
@@ -183,6 +231,8 @@
           };
         }
       };
+
+      // Todo: define edges here!
     },
 
     
diff --git a/package.json b/package.json
index e32b541..114373b 100755
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "Kalamar",
   "description": "Mojolicious-based Frontend for KorAP",
   "license" : "BSD-2-Clause",
-  "version": "0.25.2",
+  "version": "0.25.3",
   "repository" : {
     "type": "git",
     "url": "https://github.com/KorAP/Kalamar.git"
