diff --git a/title.module b/title.module
index d0339f6..1a7af7e 100644
--- a/title.module
+++ b/title.module
@@ -514,9 +514,17 @@ 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'])) {
+        foreach ( $form_state['values'][$field_name] as $key => $value) {
+          if (!empty($form_state['values'][$field_name][$key][$field_name][$langcode][0]['value'])) {
+            $entity->{$legacy_field} = $form_state['values'][$field_name][$key][$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);
