diff --git a/lib/models/User.class.php b/lib/models/User.class.php
index 6bb38f41da3ff70478239000785ebd7fcfcc544f..5cf1e18a421c1733b0df107cfef726e2f96e0ecd 100644
--- a/lib/models/User.class.php
+++ b/lib/models/User.class.php
@@ -1078,16 +1078,12 @@ class User extends AuthUserMd5 implements Range, PrivacyObject
             $old_user = User::find($old_id);
             $old_user->datafields->each(function ($field) use ($new_id) {
                 if (!$field->isNew() && $field->content !== null) {
-                    $data = $field->toArray('datafield_id sec_range_id content mkdate chdate');
-                    $data['range_id'] = $new_id;
+                    $entry = new DatafieldEntryModel([$field->datafield_id, $new_id, $field->sec_range_id, $field->lang]);
 
-                    $datafield = DatafieldEntryModel::findOneBySQL('datafield_id = ?', [$data['datafield_id']]);
-                    if(!$datafield) {
-                        $datafield = DatafieldEntryModel::build($data);
-                    } else {
-                        $datafield->setData($data);
+                    if ($entry->content === null || $entry->content === '' || $entry->content === 'default_value') {
+                        $entry->content = $field->content;
+                        $entry->store();
                     }
-                    $datafield->store();
                 }
             });