diff --git a/title.module b/title.module
index 9250e15..5c6aa2b 100644
--- a/title.module
+++ b/title.module
@@ -497,9 +497,13 @@ function title_field_attach_submit($entity_type, $entity, $form, &$form_state) {
     $langcode = title_entity_language($entity_type, $entity);
 
     foreach ($fr_info as $legacy_field => $info) {
-      if (!empty($form[$legacy_field]['#field_replacement'])) {
-        $field_name = $info['field']['field_name'];
-
+      $field_name = $info['field']['field_name'];
+      // When the original property input is not in the form we need to apply
+      // the new replacement field value manually.
+      if (empty($form[$legacy_field]['#field_replacement'])) {
+        $entity->{$legacy_field} = $form_state['values'][$field_name][0][$field_name][$langcode][0]['value'];
+      }
+      else {
         // Give a chance to operate on submitted values either.
         if (!empty($info['callbacks']['submit'])) {
           $info['callbacks']['submit']($entity_type, $entity, $legacy_field, $info, $langcode, $values);
