diff --git a/include/caosdb/entity.h b/include/caosdb/entity.h
index 3811aa6b04fc402d8f9387e76c7a849c0b85fb47..b31c2c91b9dbb2f41f5b768eca83a64e570e2d5b 100644
--- a/include/caosdb/entity.h
+++ b/include/caosdb/entity.h
@@ -677,9 +677,7 @@ public:
   /**
    * Move constructor.
    */
-  explicit inline Entity(Entity &&original)
-    : wrapped(std::move(original.wrapped)), value(Value(std::move(original.value.wrapped))),
-      data_type(DataType(std::move(original.data_type.wrapped))) {
+  explicit inline Entity(Entity &&original) : Entity(std::move(original.wrapped)) {
     this->properties.wrapped = std::move(original.properties.wrapped);
     this->parents.wrapped = std::move(original.parents.wrapped);
     this->errors.wrapped = std::move(original.errors.wrapped);
@@ -692,14 +690,14 @@ public:
    */
   auto operator=(Entity &&other) -> Entity & {
     this->wrapped = std::move(other.wrapped);
-    this->data_type.wrapped = std::move(other.data_type.wrapped);
-    this->value.wrapped = std::move(other.value.wrapped);
-    this->properties.wrapped = std::move(other.properties.wrapped);
-    this->parents.wrapped = std::move(other.parents.wrapped);
+    this->data_type = std::move(other.data_type);
+    this->value = std::move(other.value);
+    this->properties = std::move(other.properties);
+    this->parents = std::move(other.parents);
     this->file_descriptor = std::move(other.file_descriptor);
-    this->errors.wrapped = std::move(other.errors.wrapped);
-    this->warnings.wrapped = std::move(other.warnings.wrapped);
-    this->infos.wrapped = std::move(other.infos.wrapped);
+    this->errors = std::move(other.errors);
+    this->warnings = std::move(other.warnings);
+    this->infos = std::move(other.infos);
     return *this;
   }