diff --git a/addressfield.module b/addressfield.module
index 1f2ff87..f7b0f98 100644
--- a/addressfield.module
+++ b/addressfield.module
@@ -434,14 +434,14 @@ function addressfield_field_widget_form(&$form, &$form_state, $field, $instance,
   // in the default values of the instance.
   $address = array();
 
-  if (!empty($form_state['addressfield'][$element_key])) {
-    // Use the value from the form_state if available.
-    $address = $form_state['addressfield'][$element_key];
-  }
-  elseif (!empty($items[$delta]['country'])) {
-    // Else use the saved value for the field.
+  if (!empty($items[$delta]['country'])) {
+    // Use the selected value if available.
     $address = $items[$delta];
   }
+  elseif (!empty($form_state['addressfield'][$element_key])) {
+    // Else use the old value before changed.
+    $address = $form_state['addressfield'][$element_key];
+  }
   else {
     // Otherwise use the instance default.
     $address = (array) $instance['default_value'][0];
