diff --git a/src/ccaosdb.cpp b/src/ccaosdb.cpp
index 9a62cb074c29d16b38c5b6fc471eeade2c01c113..d1bb1217121a816f6dc6032a525f54f3db4c896a 100644
--- a/src/ccaosdb.cpp
+++ b/src/ccaosdb.cpp
@@ -471,7 +471,7 @@ ERROR_RETURN_CODE(
     auto *wrapped_entity =
       static_cast<caosdb::entity::Entity *>(entity->wrapped_entity);
 
-    return wrapped_transaction->InsertEntity(*wrapped_entity);
+    return wrapped_transaction->InsertEntity(wrapped_entity);
   })
 
 ERROR_RETURN_CODE(
@@ -484,7 +484,7 @@ ERROR_RETURN_CODE(
     auto *wrapped_entity =
       static_cast<caosdb::entity::Entity *>(entity->wrapped_entity);
 
-    return wrapped_transaction->UpdateEntity(*wrapped_entity);
+    return wrapped_transaction->UpdateEntity(wrapped_entity);
   })
 
 ERROR_RETURN_CODE(GENERIC_ERROR,
@@ -496,7 +496,7 @@ ERROR_RETURN_CODE(GENERIC_ERROR,
                       static_cast<caosdb::transaction::Transaction *>(
                         transaction->wrapped_transaction);
 
-                    return wrapped_transaction->DeleteById(std::string(id))
+                    return wrapped_transaction->DeleteById(std::string(id));
                   })
 
 ERROR_RETURN_CODE(GENERIC_ERROR,
diff --git a/test/test_ccaosdb.cpp b/test/test_ccaosdb.cpp
index 1009cc5962c6a309052509e36d39c3f6ee97ea98..2f33c095360fd1575120d7fabd6669afd96406dd 100644
--- a/test/test_ccaosdb.cpp
+++ b/test/test_ccaosdb.cpp
@@ -415,3 +415,46 @@ TEST_F(test_ccaosdb, test_remove_property) {
   return_code = caosdb_entity_delete_entity(&entity);
   EXPECT_EQ(return_code, 0);
 }
+
+TEST_F(test_ccaosdb, test_insert_update_delete) {
+  // Only test adding to a transaction, excution and results are
+  // tested in integration tests.
+  caosdb_connection_connection connection;
+  caosdb_connection_connection_manager_get_default_connection(&connection);
+
+  caosdb_transaction_transaction insert_transaction;
+  caosdb_connection_connection_create_transaction(&connection,
+                                                  &insert_transaction);
+
+  caosdb_entity_entity entity;
+  caosdb_entity_create_entity(&entity);
+  caosdb_entity_entity_set_name(&entity, "some_name");
+
+  int return_code(
+    caosdb_transaction_transaction_insert_entity(&insert_transaction, &entity));
+  // For now, nothing further can be done here, so it should be READY
+  EXPECT_EQ(return_code, caosdb::StatusCode::READY);
+
+  caosdb_transaction_transaction update_transaction;
+  caosdb_connection_connection_create_transaction(&connection,
+                                                  &update_transaction);
+
+  return_code =
+    caosdb_transaction_transaction_update_entity(&update_transaction, &entity);
+  // No ID, so this should be an error
+  EXPECT_EQ(return_code, caosdb::StatusCode::ORIGINAL_ENTITY_MISSING_ID);
+
+  caosdb_transaction_transaction delete_transaction;
+  caosdb_connection_connection_create_transaction(&connection,
+                                                  &delete_transaction);
+
+  return_code =
+    caosdb_transaction_transaction_delete_by_id(&delete_transaction, "some_id");
+  // Could add further deletions
+  EXPECT_EQ(return_code, caosdb::StatusCode::GO_ON);
+
+  caosdb_entity_delete_entity(&entity);
+  caosdb_transaction_delete_transaction(&insert_transaction);
+  caosdb_transaction_delete_transaction(&update_transaction);
+  caosdb_transaction_delete_transaction(&delete_transaction);
+}