diff --git a/src/core/js/webcaosdb.js b/src/core/js/webcaosdb.js
index e9a293f68e058b6c146239318bde78c05a2dac69..bdced2e53f1ab20fc5ce1490f8a9796f32db2672 100644
--- a/src/core/js/webcaosdb.js
+++ b/src/core/js/webcaosdb.js
@@ -262,13 +262,13 @@ this.transformation = new function() {
      */
     this.retrieveEntityXsl = async function _rEX() {
         var entityXsl = await transformation.retrieveXsltScript("entity.xsl");
-        insertParam(entityXsl, "filesystempath", window.sessionStorage.caosdbBasePath + "FileSystem/");
-        insertParam(entityXsl, "entitypath", window.sessionStorage.caosdbBasePath + "Entity/");
-        insertParam(entityXsl, "close-char", '×');
+        var commonXsl = await transformation.retrieveXsltScript("common.xsl");
         var errorXsl = await transformation.retrieveXsltScript('messages.xsl');
-        var xslt = transformation.mergeXsltScripts(entityXsl, [errorXsl]);
+        var xslt = transformation.mergeXsltScripts(entityXsl, [errorXsl, commonXsl]);
+        insertParam(xslt, "filesystempath", window.sessionStorage.caosdbBasePath + "FileSystem/");
+        insertParam(xslt, "entitypath", window.sessionStorage.caosdbBasePath + "Entity/");
+        insertParam(xslt, "close-char", '×');
         xslt = injectTemplate(xslt, '<xsl:template match="/"><div class="root"><xsl:apply-templates select="Response/*" mode="entities"/></div></xsl:template>');
-        xslt = injectTemplate(xslt, '<xsl:template name="make-filesystem-link"> <xsl:param name="href" /> <xsl:param name="display" select="$href" /> <a> <xsl:attribute name="href"><xsl:value-of select="concat($filesystempath,$href)" /></xsl:attribute> <xsl:value-of select="$display" /> </a> </xsl:template> ');
         return xslt;
     }
 
diff --git a/src/core/xsl/common.xsl b/src/core/xsl/common.xsl
index e166cf9123a30e2806ce9ff8edca86091303a99e..395c22063b8e2cdb6725ee2bd4cc859f9fb7be2c 100644
--- a/src/core/xsl/common.xsl
+++ b/src/core/xsl/common.xsl
@@ -33,4 +33,54 @@
       <xsl:value-of select="$display"/>
     </a>
   </xsl:template>
+
+  <xsl:template name="trim">
+    <xsl:param name="str"/>
+    <xsl:call-template name="reverse">
+      <xsl:with-param name="str">
+        <xsl:call-template name="remove_leading_ws">
+          <xsl:with-param name="str">
+            <xsl:call-template name="reverse">
+              <xsl:with-param name="str">
+                <xsl:call-template name="remove_leading_ws">
+                  <xsl:with-param name="str" select="$str"/>
+                </xsl:call-template>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template name="remove_leading_ws">
+    <xsl:param name="str"/>
+    <xsl:value-of select="substring($str,string-length(substring-before($str,substring(translate($str, ' &#009;&#xA;', ''), 1, 1))) +1)"/>
+  </xsl:template>
+
+  <xsl:template name="reverse">
+     <xsl:param name="str"/>
+     <xsl:variable name="length" select="string-length($str)"/>
+     <xsl:choose>
+          <xsl:when test="$length &lt; 2">
+               <xsl:value-of select="$str"/>
+          </xsl:when>
+          <xsl:when test="$length = 2">
+               <xsl:value-of select="substring($str,2,1)"/>
+               <xsl:value-of select="substring($str,1,1)"/>
+          </xsl:when>
+          <xsl:otherwise>
+               <xsl:variable name="center" select="floor($length div 2)"/>
+               <xsl:call-template name="reverse">
+                    <xsl:with-param name="str"
+                         select="substring($str,$center+1,$center+1)"/>
+               </xsl:call-template>
+               <xsl:call-template name="reverse">
+                    <xsl:with-param name="str"
+                         select="substring($str,1,$center)"/>
+               </xsl:call-template>
+          </xsl:otherwise>
+     </xsl:choose>
+  </xsl:template>
+
 </xsl:stylesheet>
diff --git a/src/core/xsl/entity.xsl b/src/core/xsl/entity.xsl
index 32f563333081cdc5976587cdc28bc2896a5d0478..0ead91d7b0aec1fec56bc31ad910a3bb6b1582b0 100644
--- a/src/core/xsl/entity.xsl
+++ b/src/core/xsl/entity.xsl
@@ -306,7 +306,11 @@
         </xsl:when>
         <xsl:otherwise>
           <span class="caosdb-property-text-value">
-            <xsl:value-of select="$value"/>
+            <xsl:call-template name="trim">
+              <xsl:with-param name="str">
+                <xsl:value-of select="$value"/>
+              </xsl:with-param>
+            </xsl:call-template>
           </span>
         </xsl:otherwise>
       </xsl:choose>
diff --git a/test/core/index.html b/test/core/index.html
index e9833d5682b50c35b827f58e3556f1a305e9d409..dcb38abd86a1e11643245b19dd2f08f7d25101b3 100644
--- a/test/core/index.html
+++ b/test/core/index.html
@@ -47,6 +47,7 @@
   <script src="js/modules/webcaosdb.js.js"></script>
   <script src="js/modules/caosdb.js.js"></script>
   <script src="js/modules/webcaosdb.css.js"></script>
+  <script src="js/modules/common.xsl.js"></script>
   <script src="js/modules/entity.xsl.js"></script>
   <script src="js/modules/welcome.xsl.js"></script>
   <script src="js/modules/query.xsl.js"></script>
diff --git a/test/core/js/modules/caosdb.js.js b/test/core/js/modules/caosdb.js.js
index 9de2e659bba52dd3d1264e1c18c2c23f87cbcc6a..9c63fbd974eb1eb7e0b01fe05b577951eecd0e64 100644
--- a/test/core/js/modules/caosdb.js.js
+++ b/test/core/js/modules/caosdb.js.js
@@ -65,13 +65,13 @@ QUnit.module("caosdb.js", {
                 done();
             }
         };
-        
+
         this.xml_test_document = str2xml(string_test_document);
 
         transformation.transformEntities(this.xml_test_document).then(x => {
             this.x = x;
             doneinc();
-        });
+        }, err => {console.log(err);});
 
 
             let string_test_document2 = `
@@ -95,7 +95,7 @@ QUnit.module("caosdb.js", {
         transformation.transformEntities(this.xml_test_document2).then(x => {
             this.userInfoTest = x;
             doneinc();
-        });
+        }, err => {console.log(err);});
     }
 });
 
@@ -109,6 +109,9 @@ QUnit.module("caosdb.js", {
 //     assert.equal(getUserName(), "max");
 // });
 
+QUnit.test("available", function(assert) {
+    assert.ok(getProperties, "getProperties");
+});
 /**
   * @author Alexander Schlemmer
   * Test whether properties are parsed correctly from the document tree.
@@ -128,7 +131,7 @@ QUnit.test("getProperties", function(assert) {
     }
 
     assert.equal(this.x.length, 4);
-        
+
     let ps = getProperties(this.x[0]);
     assert.equal(ps.length, 1);
     assert.equal(ps[0].name, "A");
@@ -369,7 +372,7 @@ QUnit.skip("replicationOfEntitiesNoDatatype", function(assert) {
         transformation.transformEntities(doc).then (x => {
             ps = getProperties(x[0]);
             pars = getParents(x[0]);
-            
+
             assert.equal(getEntityRole(ent), getEntityRole(x[0]));
             assert.equal(getEntityName(ent), getEntityName(x[0]));
             assert.equal(getEntityID(ent), getEntityID(x[0]));
diff --git a/test/core/js/modules/entity.xsl.js b/test/core/js/modules/entity.xsl.js
index d042665d3f34a401d8ab4f720891f79526895225..eb626612e529c158bb6ad7a7e618528d58e24bbf 100644
--- a/test/core/js/modules/entity.xsl.js
+++ b/test/core/js/modules/entity.xsl.js
@@ -28,15 +28,23 @@ QUnit.module("entity.xsl", {
         // load entity.xsl
         var done = assert.async();
         var qunit_obj = this;
-        connection.get("webinterface/xsl/entity.xsl").then(function(data) {
-            insertParam(data, "entitypath", "/entitypath/");
-            insertParam(data, "filesystempath", "/filesystempath/");
-            qunit_obj.entityXSL = injectTemplate(data, '<xsl:template name="make-filesystem-link"></xsl:template>');
+        _retrieveEntityXSL().then(function(xsl) {
+            qunit_obj.entityXSL = xsl
             done();
         });
     }
 });
 
+async function _retrieveEntityXSL() {
+    var entityXsl = await transformation.retrieveXsltScript("entity.xsl");
+    var commonXsl = await transformation.retrieveXsltScript("common.xsl");
+    var xsl = transformation.mergeXsltScripts(entityXsl, [commonXsl]);
+    insertParam(xsl, "entitypath", "/entitypath/");
+    insertParam(xsl, "filesystempath", "/filesystempath/");
+    return xsl;
+}
+
+
 /* TESTS */
 QUnit.test("availability", function(assert) {
     assert.ok(this.entityXSL);