diff --git a/src/caosdb/apiutils.py b/src/caosdb/apiutils.py
index 4ee0dacd0ecf0a9e347866965786fb619dd7a725..e0464cc81b51c1c64ad36011c8ec0a75eea63293 100644
--- a/src/caosdb/apiutils.py
+++ b/src/caosdb/apiutils.py
@@ -558,8 +558,8 @@ def getCommitIn(folder):
         return t.readline().strip()
 
 
-COMPARED = ["name", "role", "datatype", "description", "importance"]
-
+COMPARED = ["name", "role", "datatype", "description", "importance",
+            "id", "path", "checksum", "size"]
 
 def compare_entities(old_entity: Entity, new_entity: Entity):
     """
@@ -613,7 +613,7 @@ def compare_entities(old_entity: Entity, new_entity: Entity):
 
             if new_entity_attr_exists:
                 newdiff[attr] = newattr
-
+                
     # properties
 
     for prop in old_entity.properties:
@@ -653,7 +653,7 @@ def compare_entities(old_entity: Entity, new_entity: Entity):
                 olddiff["properties"].pop(prop.name)
 
         else:
-            raise NotImplementedError()
+            raise NotImplementedError("Comparison not implemented for multi-properties.")
 
     for prop in new_entity.properties:
         if len([0 for p in old_entity.properties if p.name == prop.name]) == 0:
diff --git a/unittests/test_apiutils.py b/unittests/test_apiutils.py
index 9cf9e1b7ac0043f3c256f1210272ff15b9df458b..b46d89986b843cef74492f38e3c069538a227872 100644
--- a/unittests/test_apiutils.py
+++ b/unittests/test_apiutils.py
@@ -179,3 +179,55 @@ def test_compare_entities_units():
 
     assert diff_r1["properties"]["test"]["unit"] == "cm"
     assert diff_r2["properties"]["test"]["unit"] == "m"
+
+    
+def test_compare_special_properties():
+    # Test for all known special properties:
+    SPECIAL_PROPERTIES = ("description", "name", "checksum", "size", "path", "id")
+    INTS = ("size", "id")
+    HIDDEN = ("checksum", "size")
+
+    for key in SPECIAL_PROPERTIES:
+        set_key = key
+        if key in HIDDEN:
+            set_key = "_" + key
+        r1 = db.Record()
+        r2 = db.Record()
+        if key not in INTS:
+            setattr(r1, set_key, "bla 1")
+            setattr(r2, set_key, "bla 1")
+        else:
+            setattr(r1, set_key, 1)
+            setattr(r2, set_key, 1)
+
+        diff_r1, diff_r2 = compare_entities(r1, r2)
+        print(diff_r1)
+        print(diff_r2)
+        assert key not in diff_r1
+        assert key not in diff_r2
+        assert len(diff_r1["parents"]) == 0
+        assert len(diff_r2["parents"]) == 0
+        assert len(diff_r1["properties"]) == 0
+        assert len(diff_r2["properties"]) == 0
+
+        if key not in INTS:
+            setattr(r2, set_key, "bla test")
+        else:
+            setattr(r2, set_key, 2)
+
+        diff_r1, diff_r2 = compare_entities(r1, r2)
+        print(r1)
+        print(r2)
+        print(diff_r1)
+        print(diff_r2)
+        assert key in diff_r1
+        assert key in diff_r2
+        if key not in INTS:
+            assert diff_r1[key] == "bla 1"
+            assert diff_r2[key] == "bla test"
+        else:
+            assert diff_r1[key] == 1
+            assert diff_r2[key] == 2
+        assert len(diff_r1["properties"]) == 0
+        assert len(diff_r2["properties"]) == 0
+