diff --git a/include/class.dynamic_forms.php b/include/class.dynamic_forms.php
index 6793ba2db519b784f39d32b3d8d4bd1f863846d3..3aeba1442f6528315f669d2e6457afdfb1010fc7 100644
--- a/include/class.dynamic_forms.php
+++ b/include/class.dynamic_forms.php
@@ -715,12 +715,11 @@ class DynamicFormEntry extends VerySimpleModel {
             // Get answers to entries
             foreach ($this->getAnswers() as $a) {
                 if (!($f = $a->getField())) continue;
-                if (isset($this->_fields[$f->get('id')]))
-                    $this->_fields[$f->get('id')] = $f;
-                else { // Perhaps an answer of deleted field
+                // Perhaps an answer of deleted field
+                if (!isset($this->_fields[$f->get('id')])) {
                     $f->setForm($this);
-                    $this->_fields[] = $f;
                 }
+                $this->_fields[$f->get('id')] = $f;
             }
         }
 
@@ -903,7 +902,7 @@ class DynamicFormEntry extends VerySimpleModel {
                 $a->deleted = false;
                 // Add to list of answers
                 $this->_values[] = $a;
-                $this->_fields[] = $field;
+                $this->_fields[$field->get('id')] = $field;
                 $this->_form = null;
 
                 // Omit fields without data