diff --git a/dev/demo/relationsdemo.js b/dev/demo/relationsdemo.js
index 0ffbc8a..a84bfeb 100644
--- a/dev/demo/relationsdemo.js
+++ b/dev/demo/relationsdemo.js
@@ -158,6 +158,7 @@
     .addRel({ start: [2,4], end: 5, label: "e", direction: "uni" })
     .addRel({ start: [5,6], end: 7, direction: "uni" })
     .addRel({ start: 4, end: [6,8], label: "f", direction: "bi" })
+    .addRel({ start: 8, end: 8, label: "self", direction: "uni"})
   ;
 
   document.getElementById("treeRel").appendChild(rel.element());
@@ -165,12 +166,13 @@
   // Todo: Probably rename to rel.draw()
   rel.show();
 
+  /*
   var rel2 = relClass.create(relSnippet);
   document.getElementById("treeRel2").appendChild(rel2.element());
   rel2.show();
 
-  
   var tree = treeClass.create(treeSnippet);
   document.getElementById("treeHier").appendChild(tree.element());
+  */
 });
 
diff --git a/dev/js/src/match/relations.js b/dev/js/src/match/relations.js
index 22fbc51..5857253 100644
--- a/dev/js/src/match/relations.js
+++ b/dev/js/src/match/relations.js
@@ -26,7 +26,7 @@
 
       // Some configurations
       this.maxArc      = 200; // maximum height of the bezier control point
-      this.overlapDiff = 40;
+      this.overlapDiff = 40;  // Difference on overlaps and minimum height for self-refernces
       this.arcDiff     = 15;
       this.anchorDiff  = 8;
       this.anchorStart = 15;
@@ -205,7 +205,8 @@
     _drawArc : function (arc) {
 
       var startPos, endPos;
-      var startY = this._y, endY = this._y;
+      var startY = this._y;
+      var endY = this._y;
 
       if (arc.startAnchor !== undefined) {
         startPos = this._tokenPoint(arc.startAnchor.element);
@@ -226,6 +227,14 @@
       startPos -= this.offsetLeft;
       endPos -= this.offsetLeft;
 
+      // Special treatment for self-references
+      var overlaps = arc.overlaps;
+      if (startPos == endPos) {
+        startPos -= this.overlapDiff / 3;
+        endPos += this.overlapDiff / 3;
+        overlaps += .5;
+      };
+
       var g = this._c("g");
       g.setAttribute("class", "arc");
       var p = g.appendChild(this._c("path"));
@@ -237,8 +246,9 @@
       // Create arc
       var middle = Math.abs(endPos - startPos) / 2;
 
-      // TODO: take the number of tokens into account!
-      var cHeight = this.arcDiff + arc.overlaps * this.overlapDiff + (middle / 2);
+      // TODO:
+      //   take the number of tokens into account!
+      var cHeight = this.arcDiff + (overlaps * this.overlapDiff) + (middle / 2);
 
       // Respect the maximum height
       cHeight = cHeight < this.maxArc ? cHeight : this.maxArc;
