diff --git a/include/class.dynamic_forms.php b/include/class.dynamic_forms.php
index af36795fafecf615ba9ad47f98cfc4284fb15278..cf302780b32de046ebbcc5a103ac66d399194e8a 100644
--- a/include/class.dynamic_forms.php
+++ b/include/class.dynamic_forms.php
@@ -166,6 +166,12 @@ class UserForm extends DynamicForm {
             static::$instance = static::getUserForm()->instanciate();
         return static::$instance;
     }
+
+    static function getNewInstance() {
+        $o = static::objects();
+        static::$instance = $o[0]->instanciate();
+        return static::$instance;
+    }
 }
 
 class TicketForm extends DynamicForm {
diff --git a/include/class.user.php b/include/class.user.php
index a52c239b2f2912195196d2d3e5de28ad24313258..e8ed94158018501dc1e19e8cb19cea06ef551ec3 100644
--- a/include/class.user.php
+++ b/include/class.user.php
@@ -252,8 +252,7 @@ class User extends UserModel {
     }
 
     function addDynamicData($data) {
-
-        $uf = UserForm::getInstance();
+        $uf = UserForm::getNewInstance();
         $uf->setClientId($this->id);
         foreach ($uf->getFields() as $f)
             if (isset($data[$f->get('name')]))
@@ -267,7 +266,7 @@ class User extends UserModel {
         if (!isset($this->_entries)) {
             $this->_entries = DynamicFormEntry::forClient($this->id)->all();
             if (!$this->_entries) {
-                $g = UserForm::getInstance();
+                $g = UserForm::getNewInstance();
                 $g->setClientId($this->id);
                 $g->save();
                 $this->_entries[] = $g;