diff --git a/include/class.dynamic_forms.php b/include/class.dynamic_forms.php
index 2118a96f53dcf845108d674857a83f08bc5b3156..49b7e94e38e0bc8bec219e3b41f8d11d235f7af9 100644
--- a/include/class.dynamic_forms.php
+++ b/include/class.dynamic_forms.php
@@ -1238,7 +1238,10 @@ class DynamicFormEntry extends VerySimpleModel {
     function addMissingFields() {
         foreach ($this->getFields() as $field) {
             if ($field->isnew && $field->isEnabled()
-                    && !$field->isPresentationOnly()) {
+                && !$field->isPresentationOnly()
+                && $field->hasData()
+                && $field->isStorable()
+            ) {
                 $a = DynamicFormEntryAnswer::create(
                     array('field_id'=>$field->get('id'), 'entry'=>$this));
 
diff --git a/include/class.ticket.php b/include/class.ticket.php
index 27a677b2324e86ac36f074aa9a0198f10ddc1caa..ae3d909648a004581e4724d40cc3db71a121ac40 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -2624,6 +2624,7 @@ implements RestrictedAccess, Threadable {
             // Don't validate deleted forms
             if (!in_array($form->getId(), $vars['forms']))
                 continue;
+            $form->filterFields(function($f) { return !$f->isStorable(); });
             $form->setSource($_POST);
             if (!$form->isValid(function($f) {
                 return $f->isVisibleToStaff() && $f->isEditableToStaff();