diff --git a/src/caosdb/apiutils.py b/src/caosdb/apiutils.py
index b1721e255a5369efc228769c6b6481d9fc1c8ff6..08f31daad56c0ab471322197cadc1a1378267f35 100644
--- a/src/caosdb/apiutils.py
+++ b/src/caosdb/apiutils.py
@@ -39,6 +39,8 @@ from caosdb.common.models import (Container, Entity, File, Property, Query,
                                   Record, RecordType, execute_query,
                                   get_config, SPECIAL_ATTRIBUTES)
 
+import logging
+
 
 def new_record(record_type, name=None, description=None,
                tempid=None, insert=False, **kwargs):
@@ -689,8 +691,13 @@ def merge_entities(entity_a: Entity, entity_b: Entity):
     The merge operation is done in place.
 
     Returns entity_a.
+
+    WARNING: This function is currently experimental and insufficiently tested. Use with care.
     """
 
+    logging.warning(
+        "This function is currently experimental and insufficiently tested. Use with care.")
+
     # Compare both entities:
     diff_r1, diff_r2 = compare_entities(entity_a, entity_b)
 
diff --git a/unittests/test_apiutils.py b/unittests/test_apiutils.py
index e75f60497c92742a4af35fd435bea1c7c078022e..13603f4caae8b1212ffa041f37d9be4b462223ff 100644
--- a/unittests/test_apiutils.py
+++ b/unittests/test_apiutils.py
@@ -33,6 +33,8 @@ import caosdb.apiutils
 from caosdb.apiutils import (apply_to_ids, compare_entities, create_id_query,
                              resolve_reference, merge_entities)
 
+from caosdb.common.models import SPECIAL_ATTRIBUTES
+
 from .test_property import testrecord
 
 import pytest
@@ -247,12 +249,13 @@ def test_copy_entities():
     assert c.name == "A"
     assert c.role == r.role
     assert c.parents[0].name == "B"
-    # Currently parents and properties are always individual to a copy:
-    assert c.parents[0] != r.parents[0]
+    # parent and property objects are not shared among copy and original:
+    assert c.parents[0] is not r.parents[0]
 
     for i in [0, 1]:
-        assert c.properties[i] != r.properties[i]
-        assert c.properties[i].value == r.properties[i].value
+        assert c.properties[i] is not r.properties[i]
+        for special in SPECIAL_ATTRIBUTES:
+            assert getattr(c.properties[i], special) == getattr(r.properties[i], special)
         assert c.get_importance(c.properties[i]) == r.get_importance(r.properties[i])