Index: branches/5.0.x/core/kernel/db/dbitem.php =================================================================== diff -u -N -r13257 -r13338 --- branches/5.0.x/core/kernel/db/dbitem.php (.../dbitem.php) (revision 13257) +++ branches/5.0.x/core/kernel/db/dbitem.php (.../dbitem.php) (revision 13338) @@ -1,6 +1,6 @@ FieldErrors[$error_field]['value'] = $error_params['value']; unset($error_params['value']); } - + // additional params, that helps to determine error sources $this->FieldErrors[$error_field]['params'] = $error_params; } @@ -450,7 +450,15 @@ // 2. don't write empty field value to db, when "skip_empty" option is set $field_value = array_key_exists($field_name, $this->FieldValues) ? $this->FieldValues[$field_name] : false; - $skip_empty = array_key_exists('skip_empty', $this->Fields[$field_name]) ? $this->Fields[$field_name]['skip_empty'] : false; + + if (array_key_exists($field_name, $this->Fields)) { + $skip_empty = array_key_exists('skip_empty', $this->Fields[$field_name]) ? $this->Fields[$field_name]['skip_empty'] : false; + } + else { + // field found in database, but not declared in unit config + $skip_empty = false; + } + $skip = $skip || (!$field_value && $skip_empty); // 3. skipping field not in Fields (nor virtual, nor real)