diff --git a/src/test/java/de/ids_mannheim/korap/TestSimple.java b/src/test/java/de/ids_mannheim/korap/TestSimple.java
index 64ce39f..b0554ca 100644
--- a/src/test/java/de/ids_mannheim/korap/TestSimple.java
+++ b/src/test/java/de/ids_mannheim/korap/TestSimple.java
@@ -90,9 +90,10 @@
         for (int i = 0; i < characters.length; i++) {
             String fixChar = characters[i];
             surface += fixChar;
-            annotation +=
-                "[("+i+"-"+(i+1)+")s:"+fixChar+
-                "|_"+i+"$<i>"+i+"<i>"+(i+1)+"]";
+            annotation += "[("+i+"-"+(i+1)+")s:"+fixChar;
+            if (i == 0)
+                annotation += "|<>:base/s:t$<b>64<i>0<i>" + characters.length + "<i>" + characters.length + "<b>0";
+            annotation += "|_"+i+"$<i>"+i+"<i>"+(i+1)+"]";
         };
 
         fd.addTV("base",surface, annotation);
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestSpanExpansionIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestSpanExpansionIndex.java
index 71bd0a7..8103dde 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestSpanExpansionIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestSpanExpansionIndex.java
@@ -641,6 +641,29 @@
         assertEquals("a[[bcce]]f", kr.getMatch(6).getSnippetBrackets());
         assertEquals(18, kr.getTotalResults());        
     }
+
+
+    @Test
+    public void testRightExpansionWithTextBoundary () throws IOException, QueryException {
+        KrillIndex ki = new KrillIndex();
+        ki.addDoc(simpleFieldDoc("aabcd"));
+        ki.commit();
+
+        QueryBuilder kq = new QueryBuilder("base");
+
+        // a[ab]?[]{0,2}
+        SpanQuery sq = kq.seq(kq.seg("s:a")).append(kq.opt(kq.or("s:a","s:b"))).append(kq.repeat(kq.empty(),0,5)).toQuery();
+        assertEquals(
+            "focus(254: spanContain(<base:base/s:t />, {254: "+
+            "spanExpansion(spanOr([base:s:a, spanNext(base:s:a, spanOr([base:s:a, base:s:b]))]), []{0, 5}, right)"+
+            "}))", sq.toString());
+
+        Result kr = ki.search(sq, (short) 25);
+        assertEquals("[[aabcd]]", kr.getMatch(8).getSnippetBrackets());
+        assertEquals("a[[a]]bcd", kr.getMatch(9).getSnippetBrackets());
+        assertEquals(16, kr.getTotalResults());        
+    }
+
     
     @Test
     public void testLeftExpansionWrongSorting () throws IOException {
