diff --git a/Changes b/Changes
index ad32006..263becf 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,7 @@
+0.55.9 2017-09-12
+        - [bugfix] Serialize token identifier correctly for
+          new corpora with text siglen (diewald)
+
 0.55.8 2017-09-05
         - [feature] Retrieve and display pagebreaks (diewald)
         - [bugfix] Handle invalid dates in input (diewald)
diff --git a/pom.xml b/pom.xml
index 758f9fc..7204854 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,7 +35,7 @@
 
 	<groupId>de.ids_mannheim.korap</groupId>
 	<artifactId>Krill</artifactId>
-	<version>0.55.8</version>
+	<version>0.55.9</version>
 	<packaging>jar</packaging>
 
 	<name>Krill</name>
diff --git a/src/main/java/de/ids_mannheim/korap/KrillIndex.java b/src/main/java/de/ids_mannheim/korap/KrillIndex.java
index ffc2b5a..b7f735a 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillIndex.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillIndex.java
@@ -1205,12 +1205,14 @@
                                 t.getStartChar(), t.getStartPos(),
                                 t.getEndChar(), t.getEndPos());
 
-                    if (t.getType() == "term" || t.getType() == "span")
+                    if (t.getType() == "term" || t.getType() == "span") {
                         match.addAnnotation(t.getStartPos(), t.getEndPos(),
                                 t.getAnnotation());
-                    else if (t.getType() == "relSrc")
+					}
+                    else if (t.getType() == "relSrc") {
                         match.addRelation(t.getStartPos(), t.getEndPos(),
                                 t.getAnnotation());
+					};
                 };
 
                 break;
diff --git a/src/main/java/de/ids_mannheim/korap/response/Match.java b/src/main/java/de/ids_mannheim/korap/response/Match.java
index 145ac6f..0d0eb63 100644
--- a/src/main/java/de/ids_mannheim/korap/response/Match.java
+++ b/src/main/java/de/ids_mannheim/korap/response/Match.java
@@ -427,6 +427,11 @@
      *            Annotation string.
      */
     public void addRelation (int src, int target, String annotation) {
+
+		if (DEBUG)
+			log.trace("Add relation {}: {} and {}", annotation, src, target);
+
+		
         this.addHighlight(new Highlight(src, src, annotation, target));
         int id = identifierNumberCounter--;
         identifierNumber.put(id, target);
@@ -672,6 +677,9 @@
     @JsonIgnore
     public String getPosID (int pos) {
 
+		if (DEBUG)
+			log.trace("Retrieve the identifier for pos");
+
         // Identifier already given
         if (this.identifier != null)
             return this.identifier;
@@ -683,10 +691,23 @@
         PosIdentifier id = new PosIdentifier();
 
         // Get prefix string corpus/doc
+		// <legacy>
         id.setCorpusID(this.getCorpusID());
         id.setDocID(this.getDocID());
+		// </legacy>
+        id.setTextSigle(this.getTextSigle());
         id.setPos(pos);
 
+		if (DEBUG)
+			log.trace(
+				"The identifier is {} in {} ({}-{}) {}",
+				id.toString(),
+				this.getTextSigle(),
+				this.getCorpusID(),
+				this.getDocID(),
+				pos
+				);
+
         return id.toString();
     };
 
diff --git a/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinatorElement.java b/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinatorElement.java
index 4f43656..9270847 100644
--- a/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinatorElement.java
+++ b/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinatorElement.java
@@ -7,6 +7,9 @@
 import java.util.*;
 import java.io.*;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /*
   Class for elements with highlighting information
 */
@@ -23,6 +26,11 @@
     public String characters;
     public boolean terminal = true;
 
+	// Logger
+	private final static Logger log = LoggerFactory.getLogger(Match.class);
+
+	// This advices the java compiler to ignore all loggings
+    public static final boolean DEBUG = false;
 
     // Constructor for highlighting elements
     public HighlightCombinatorElement (byte type, int number) {
@@ -78,6 +86,12 @@
                 }
                 else {
                     Relation rel = match.getRelationID(this.number);
+
+					if (DEBUG) {
+						log.trace("Annotation is a relation with id {}", this.number);
+						log.trace("Resulting in relation {}: {}", rel.annotation, rel.ref);
+					};
+
                     sb.append("xlink:title=\"")
                             .append(escapeHTML(rel.annotation))
                             .append("\" xlink:type=\"simple\" xlink:href=\"#")
diff --git a/src/main/java/de/ids_mannheim/korap/response/match/PosIdentifier.java b/src/main/java/de/ids_mannheim/korap/response/match/PosIdentifier.java
index eaa8d9e..a7f7729 100644
--- a/src/main/java/de/ids_mannheim/korap/response/match/PosIdentifier.java
+++ b/src/main/java/de/ids_mannheim/korap/response/match/PosIdentifier.java
@@ -5,7 +5,6 @@
 public class PosIdentifier extends DocIdentifier {
     private int pos;
 
-
     public PosIdentifier () {};
 
 
@@ -21,16 +20,24 @@
 
 
     public String toString () {
-        if (this.docID == null)
+        if (this.textSigle == null && this.docID == null)
             return null;
 
-        StringBuilder sb = new StringBuilder("word-");
+        StringBuilder sb = new StringBuilder("token-");
 
+        // Get prefix string text sigle
+		if (this.textSigle != null) {
+			sb.append(this.textSigle);
+		}
         // Get prefix string corpus/doc
-        if (this.corpusID != null) {
-            sb.append(this.corpusID).append('!');
-        };
-        sb.append(this.docID);
+		else {
+			// <legacy>
+			if (this.corpusID != null) {
+				sb.append(this.corpusID).append('!');
+			};
+			sb.append(this.docID);
+			// </legacy>
+		};
 
         sb.append("-p");
         sb.append(this.pos);
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestMatchIdentifier.java b/src/test/java/de/ids_mannheim/korap/index/TestMatchIdentifier.java
index 0500050..f6c6bf5 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestMatchIdentifier.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestMatchIdentifier.java
@@ -107,7 +107,7 @@
         assertEquals(id.getCorpusID(), "c1");
         assertEquals(id.getDocID(), "d1");
         assertEquals(id.getPos(), 8);
-        assertEquals(id.toString(), "word-c1!d1-p8");
+        assertEquals(id.toString(), "token-c1!d1-p8");
     };
 
 
@@ -370,12 +370,12 @@
 					 + "<mark>"
 					 + "<span title=\"x/o:erstens\">"
 					 + "<span xlink:title=\"x/rel:a\" xlink:type=\"simple\" "
-					    + "xlink:href=\"#word-c1!d1-p3\">"
+					    + "xlink:href=\"#token-c1!d1-p3\">"
 					 + "a" + "</span>"
 					 + "</span>"
 					 + "<span title=\"x/o:zweitens\">" + "b" + "</span>"
 					 + "<span title=\"x/o:drittens\">" + "c" + "</span>"
-					 + "<span xml:id=\"word-c1!d1-p3\">"
+					 + "<span xml:id=\"token-c1!d1-p3\">"
 					 + "<span title=\"x/o:viertens\">" + "a" + "</span>"
 					 + "</span>"
 					 + "<span title=\"x/o:fünftens\">" + "b" + "</span>"
@@ -395,12 +395,12 @@
 					 + "</span>" + "<span class=\"match\">"+"<mark>"
 					 +"<span title=\"x/o:erstens\">"
 					 +"<span xlink:title=\"x/rel:a\" " + "xlink:type=\"simple\" "
-					 +"xlink:href=\"#word-c1!d1-p3\">a</span>"
+					 +"xlink:href=\"#token-c1!d1-p3\">a</span>"
 					 +"</span>"
 					 +"<span title=\"x/o:zweitens\">b</span>"
 					 +"<mark class=\"class-7 level-0\">"
 					 +"<span title=\"x/o:drittens\">c</span>"
-					 +"<span xml:id=\"word-c1!d1-p3\">"
+					 +"<span xml:id=\"token-c1!d1-p3\">"
 					 +"<span title=\"x/o:viertens\">a</span>"
 					 +"</span>"
 					 +"</mark>"
@@ -491,19 +491,19 @@
 					 + "<span title=\"f/m:eins\">" + "<span title=\"f/y:one\">"
 					 + "<span title=\"it/is:1\">"
 					 + "<span title=\"x/o:erstens\">"
-					 + "<span xlink:title=\"x/rel:a\" xlink:type=\"simple\" xlink:href=\"#word-c1!d1-p3\">"
+					 + "<span xlink:title=\"x/rel:a\" xlink:type=\"simple\" xlink:href=\"#token-c1!d1-p3\">"
 					 + "a</span>" + "</span>" + "</span>"
 					 + "</span>" + "</span>"
 					 + "<span title=\"f/m:zwei\">" + "<span title=\"f/y:two\">"
 					 + "<span title=\"it/is:2\">"
 					 + "<span title=\"x/o:zweitens\">"
-					 + "<span xlink:title=\"x/rel:b\" xlink:type=\"simple\" xlink:href=\"#word-c1!d1-p3\">"
+					 + "<span xlink:title=\"x/rel:b\" xlink:type=\"simple\" xlink:href=\"#token-c1!d1-p3\">"
 					 + "b</span>" + "</span>"
 					 + "</span>" + "</span>" + "</span>"
 					 + "<span title=\"f/m:drei\">" + "<span title=\"f/y:three\">"
 					 + "<span title=\"it/is:3\">"
 					 + "<span title=\"x/o:drittens\">c</span>" + "</span>"
-					 + "</span>" + "</span>" + "<span xml:id=\"word-c1!d1-p3\">"
+					 + "</span>" + "</span>" + "<span xml:id=\"token-c1!d1-p3\">"
 					 + "<span title=\"f/m:vier\">" + "<span title=\"f/y:four\">"
 					 + "<span title=\"it/is:4\">"
 					 + "<span title=\"x/o:viertens\">a</span>" + "</span>"
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestSampleIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestSampleIndex.java
index da683a7..eb08591 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestSampleIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestSampleIndex.java
@@ -247,7 +247,7 @@
 								   true);
 
 		assertEquals(km.getSnippetBrackets(), "... [[{malt/d:DET>132567:meine} {#132567:{malt/d:ATTR>132567:eigne}} {malt/d:PN>132564:Erfahrung}]] ...");
-		assertEquals(km.getSnippetHTML(), "... [[{malt/d:DET>132567:meine} {#132567:{malt/d:ATTR>132567:eigne}} {malt/d:PN>132564:Erfahrung}]] ...");
+		assertEquals(km.getSnippetHTML(), "<span class=\"context-left\"><span class=\"more\"></span></span><span class=\"match\"><mark><span xlink:title=\"malt/d:DET\" xlink:type=\"simple\" xlink:href=\"#token-GOE/AGD/00000-p132567\">meine</span> <span xml:id=\"token-GOE/AGD/00000-p132567\"><span xlink:title=\"malt/d:ATTR\" xlink:type=\"simple\" xlink:href=\"#token-GOE/AGD/00000-p132567\">eigne</span></span> <span xlink:title=\"malt/d:PN\" xlink:type=\"simple\" xlink:href=\"#token-GOE/AGD/00000-p132564\">Erfahrung</span></mark></span><span class=\"context-right\"><span class=\"more\"></span></span>");
 
 	}   
 }
