diff --git a/CHANGELOG.md b/CHANGELOG.md
index c295a5fc637112645189759f3267859385514518..38b2c98f98af4499fe39d58a7ca353107f676e32 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -63,6 +63,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Fixed (for any bug fixes)
 
+* [#251](https://gitlab.indiscale.com/caosdb/src/caosdb-webui/-/issues/251) - Data loss when editing Entities with URL-like properties
+
 ### Security (in case of vulnerabilities)
 
 ### Documentation (for notable additions or changes of the documentation)
diff --git a/src/core/js/ext_cosmetics.js b/src/core/js/ext_cosmetics.js
index f4f281123b39a87b7ef6848db4e84a81b5e30d9c..77556437394df6a6763661ce5c0d5001f68ce61a 100644
--- a/src/core/js/ext_cosmetics.js
+++ b/src/core/js/ext_cosmetics.js
@@ -47,7 +47,8 @@ var cosmetics = new function () {
                     return `<a title="Open ${href} in a new tab." target="_blank" class="caosdb-v-property-href-value" href="${href}">${link_text} <i class="bi bi-box-arrow-up-right"></i></a>`;
                 });
 
-                $(this).html(result);
+                $(this).hide();
+                $(this).after(result);
             }
         });
     }
diff --git a/test/core/js/modules/ext_cosmetics.js.js b/test/core/js/modules/ext_cosmetics.js.js
index d5d4df7f10a2859bcd7318680d4f6720aedc6127..969c8297b8b5cf85d0a668d7c30e8b0f45e34d4d 100644
--- a/test/core/js/modules/ext_cosmetics.js.js
+++ b/test/core/js/modules/ext_cosmetics.js.js
@@ -46,13 +46,16 @@ QUnit.test("linkify - https", function (assert) {
         ["this is other text https://link", 1],
         ["this is other text https://link and here comes another link https://link and more text", 2],
     ];
+
     for (let test_case of test_cases) {
-        var text_value = $(`<div class="caosdb-f-property-text-value">${test_case[0]}</div>`);
-        $(document.body).append(text_value);
-        assert.equal($(text_value).find("a[href='https://link']").length, 0, "no link present");
+        const container = $('<div></div>');
+        $(document.body).append(container);
+        const text_value = $(`<div class="caosdb-f-property-text-value">${test_case[0]}</div>`);
+        container.append(text_value);
+        assert.equal($(container).find("a[href='https://link']").length, 0, "no link present");
         cosmetics.linkify();
-        assert.equal($(text_value).find("a[href='https://link']").length, test_case[1], "link is present");
-        text_value.remove();
+        assert.equal($(container).find("a[href='https://link']").length, test_case[1], "link is present");
+        container.remove();
     }
 });
 
@@ -66,22 +69,26 @@ QUnit.test("linkify - http", function (assert) {
         ["this is other text http://link and here comes another link http://link and more text", 2],
     ];
     for (let test_case of test_cases) {
-        var text_value = $(`<div class="caosdb-f-property-text-value">${test_case[0]}</div>`);
-        $(document.body).append(text_value);
-        assert.equal($(text_value).find("a[href='http://link']").length, 0, "no link present");
+        const container = $('<div></div>');
+        $(document.body).append(container);
+        const text_value = $(`<div class="caosdb-f-property-text-value">${test_case[0]}</div>`);
+        $(container).append(text_value);
+        assert.equal($(container).find("a[href='http://link']").length, 0, "no link present");
         cosmetics.linkify();
-        assert.equal($(text_value).find("a[href='http://link']").length, test_case[1], "link is present");
-        text_value.remove();
+        assert.equal($(container).find("a[href='http://link']").length, test_case[1], "link is present");
+        container.remove();
     }
 });
 
 QUnit.test("linkify cut-off (40)", function (assert) {
-    var test_case = "here is some text https://this.is.a.link/with/more/than/40/characters/ this is more text";
-    var text_value = $(`<div class="caosdb-f-property-text-value">${test_case}</div>`);
-    $(document.body).append(text_value);
-    assert.equal($(text_value).find("a").length, 0, "no link present");
+    const container = $('<div></div>');
+    $(document.body).append(container);
+    const test_case = "here is some text https://this.is.a.link/with/more/than/40/characters/ this is more text";
+    const text_value = $(`<div class="caosdb-f-property-text-value">${test_case}</div>`);
+    $(container).append(text_value);
+    assert.equal($(container).find("a").length, 0, "no link present");
     cosmetics.linkify();
-    assert.equal($(text_value).find("a").length, 1, "link is present");
-    assert.equal($(text_value).find("a").text(), "https://this.is.a.link/with/more/th[...] ", "link text has been cut off");
-    text_value.remove();
-});
\ No newline at end of file
+    assert.equal($(container).find("a").length, 1, "link is present");
+    assert.equal($(container).find("a").text(), "https://this.is.a.link/with/more/th[...] ", "link text has been cut off");
+    container.remove();
+});