diff --git a/addressfield_title.module b/addressfield_title.module
index a3547b1..6281295 100644
--- a/addressfield_title.module
+++ b/addressfield_title.module
@@ -41,7 +41,6 @@ function addressfield_title_field_attach_presave($entity_type, $entity) {
   $addressfields = addressfield_title_addressfield_types();
   foreach ($addressfields as $addressfield) {
     if (isset($entity->$addressfield)) {
-      $data = array();
       $field = field_info_field($addressfield);
       list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
       $instance = field_info_instance($entity_type, $addressfield, $bundle);
@@ -50,7 +49,12 @@ function addressfield_title_field_attach_presave($entity_type, $entity) {
       // $language = isset($entity->language) ? $entity->language : LANGUAGE_NONE;
       $language = LANGUAGE_NONE;
       foreach ($entity->{$addressfield}[$language] as $delta => $fieldset) {
-        $data = array();
+        if (!empty($entity->{$addressfield}[$language][$delta]['data'])) {
+          $data = unserialize($entity->{$addressfield}[$language][$delta]['data']);
+        }
+        else {
+          $data = array();
+        }
         foreach ($fieldset as $field_key => $field_value) {
           // Compare fields with addressfield default fields and store any additional fields in data.
           if (!in_array($field_key, $default_fields)) {
