diff --git a/dev/js/spec/vcSpec.js b/dev/js/spec/vcSpec.js
index 0c86d85..482d384 100644
--- a/dev/js/spec/vcSpec.js
+++ b/dev/js/spec/vcSpec.js
@@ -1986,6 +1986,36 @@
       expect(doc.element().classList.contains('rewritten')).toBeTruthy();
     });
 
+    it('should be described in a title attribute', function () {
+
+            doc = docClass.create(
+        undefined,
+        {
+          "@type":"koral:doc",
+          "key":"Titel",
+          "value":"Baum",
+          "match":"match:eq",
+          "rewrites" : [
+            {
+              "@type" : "koral:rewrite",
+              "operation" : "operation:modification",
+              "src" : "querySerializer",
+              "scope" : "tree"
+            },
+            {
+              "@type" : "koral:rewrite",
+              "operation" : "operation:injection",
+              "src" : "me"
+            }
+          ]
+        });
+      
+      expect(doc.element().classList.contains('doc')).toBeTruthy();
+      expect(doc.element().classList.contains('rewritten')).toBeTruthy();
+      expect(doc.element().lastChild.getAttribute("title")).toEqual("querySerializer: tree (modification)\nme (injection)");
+    });
+
+    
     xit('should be deserialized by docGroups', function () {
       var docGroup = docGroupClass.create(
         undefined,
diff --git a/dev/js/src/vc/rewritelist.js b/dev/js/src/vc/rewritelist.js
index cec95ff..8e68fa0 100644
--- a/dev/js/src/vc/rewritelist.js
+++ b/dev/js/src/vc/rewritelist.js
@@ -32,22 +32,32 @@
 
       this._element = document.createElement('div');
       this._element.setAttribute('class', 'rewrite');
+      var comments = [];
       for (var x in this._list) {
 	      var rewrite = this._list[x];
+
+        // This is a blind element
 	      var span = document.createElement('span');
 
 	      // Set class attribute
 	      span.setAttribute('class', rewrite.operation());
 
 	      // Append source information
-	      span.addT(rewrite.src());
+	      var rewriteText = rewrite.src();
 
 	      // Append scope information
 	      if (rewrite.scope() !== undefined) {
-	        span.addT(': ' + rewrite.scope());
+	        rewriteText += ': ' + rewrite.scope();
 	      };
+
+	      // Append source information
+	      span.addT(rewriteText);
+
+        comments.push(rewriteText + ' (' + rewrite.operation() + ')');
+        
 	      this._element.appendChild(span);
       };
+      this._element.setAttribute("title", comments.join("\n"))
       return this._element;
     }
   };
