diff --git a/geocoder.widget.inc b/geocoder.widget.inc
index 2489729..26db485 100644
--- a/geocoder.widget.inc
+++ b/geocoder.widget.inc
@@ -404,9 +404,8 @@ function geocoder_widget_values_from_geometry($geometry, $field_type) {
   }
 }
 
-
 /**
- * Geocoder Widget - Parse an address field
+ * Geocoder Widget - Parse an address field.
  */
 function geocoder_widget_parse_addressfield($field_item) {
   $address = '';
@@ -415,7 +414,21 @@ function geocoder_widget_parse_addressfield($field_item) {
   if (!empty($field_item['locality']))                $address .= $field_item['locality'] . ',';
   if (!empty($field_item['administrative_area']))     $address .= $field_item['administrative_area'] . ',';
   if (!empty($field_item['sub_administrative_area'])) $address .= $field_item['sub_administrative_area'] . ',';
-  if (!empty($field_item['country']))                 $address .= $field_item['country'] . ',';
+  if (!empty($field_item['country'])) {
+    if (function_exists('country_load')) {
+      $country = country_load($field_item['country']);
+      $field_item['country'] = $country->name;
+    }
+    else {
+      // Convert country code to country name.
+      include_once DRUPAL_ROOT . '/includes/iso.inc';
+      $countries = _country_get_predefined_list();
+      if (array_key_exists($field_item['country'], $countries)) {
+        $field_item['country'] = $countries[$field_item['country']];
+      }
+    }
+    $address .= $field_item['country'];
+  }
   if (!empty($field_item['postal_code']))             $address .= $field_item['postal_code'] . ',';
 
   $address = rtrim($address, ', ');
