diff --git a/plugins/format/address.inc b/plugins/format/address.inc
old mode 100644
new mode 100755
index 6fe37df..6797a9d
--- a/plugins/format/address.inc
+++ b/plugins/format/address.inc
@@ -44,7 +44,7 @@ function addressfield_format_address_generate(&$format, $address, $context = arr
   );
   $format['locality_block'] = array(
     '#type' => 'addressfield_container',
-    '#attributes' => array('class' => array('addressfield-container-inline', 'locality-block', 'country-' . $address['country'])),
+    '#attributes' => array('class' => array('addressfield-container-inline', 'locality-block')),
     '#weight' => 50,
   );
   $format['locality_block']['#attached']['css'][] = drupal_get_path('module', 'addressfield') . '/addressfield.css';
@@ -70,7 +70,7 @@ function addressfield_format_address_generate(&$format, $address, $context = arr
   );
 
   // Those countries do not seem to have a relevant postal code.
-  if (in_array($address['country'], array('AF', 'AG', 'AL', 'AO', 'BB', 'BI', 'BJ', 'BO', 'BS', 'BW', 'BZ', 'CF', 'CG', 'CM', 'CO', 'DJ', 'DM', 'EG', 'ER', 'FJ', 'GD', 'GH', 'GM', 'GQ', 'GY', 'IE', 'KI', 'KM', 'KP', 'KY', 'LC', 'LY', 'ML', 'MR', 'NA', 'NR', 'RW', 'SB', 'SC', 'SL', 'SR', 'ST', 'TD', 'TG', 'TL', 'TO', 'TT', 'TV', 'TZ', 'UG', 'VC', 'VU', 'WS', 'ZW'))) {
+  if (in_array($address['country'], array('AF', 'AG', 'AL', 'AO', 'BB', 'BI', 'BJ', 'BO', 'BS', 'BW', 'BZ', 'CF', 'CG', 'CM', 'CO', 'DJ', 'DM', 'EG', 'ER', 'FJ', 'GD', 'GH', 'GM', 'GQ', 'GY', 'KI', 'KM', 'KP', 'KY', 'LC', 'LY', 'ML', 'MR', 'NA', 'NR', 'RW', 'SB', 'SC', 'SL', 'SR', 'ST', 'TD', 'TG', 'TL', 'TO', 'TT', 'TV', 'TZ', 'UG', 'VC', 'VU', 'WS', 'ZW'))) {
     unset($format['locality_block']['postal_code']);
 
     // Remove the prefix from the first widget of the block.
@@ -88,6 +88,70 @@ function addressfield_format_address_generate(&$format, $address, $context = arr
       '#prefix' => ' ',
       '#attributes' => array('class' => array('state')),
     );
+    
+    // Set the title to match the country term for their administrative area
+    $administrative_area_terms = array(
+      'AR' => 'Province',
+      'AU' => 'State',
+      'BR' => 'State',
+      'BS' => 'District',
+      'BY' => 'Province',
+      'BZ' => 'District', 
+      'CA' => 'Province', 
+      'CN' => 'Province', 
+      'DO' => 'Province', 
+      'EG' => 'Governorate', 
+      'ES' => 'Autonomous Community',
+      'FJ' => 'Division', 
+      'FM' => 'State', 
+      'GB' => 'Region', 
+      'HN' => 'Department', 
+      'ID' => 'Province', 
+      'IE' => 'County', 
+      'IN' => 'State', 
+      'IT' => 'Region', 
+      'JO' => 'Governorate', 
+      'JP' => 'Prefecture', 
+      'KI' => 'District', 
+      'KN' => 'Province',
+      'KR' => 'Province', 
+      'KW' => 'Governorate', 
+      // 'KY' => '', // Cayman Islands is part of the U.K.?
+      'KZ' => 'Province', 
+      'MX' => 'State', 
+      'MY' => 'State', 
+      'MZ' => 'Province', 
+      'NG' => 'State',
+      'NI' => 'Department',
+      'NR' => 'District',
+      'NZ' => 'Region',
+      'OM' => 'Region',
+      'PA' => 'Province',
+      // 'PF' => '', // French Polynesia is part of France?
+      'PG' => 'Region',
+      'PH' => 'Region',
+      // 'PR' => '', // Puerto Rico is a territory of the U.S.?
+      'PW' => 'State',
+      'RU' => 'Federal Subject',
+      // 'SM' => '', // San Marino has cities, does this make sense?
+      'SO' => 'Region',
+      'SR' => 'District',
+      'SV' => 'Department',
+      'TH' => 'Region',
+      'TW' => 'Special municipality', // TAIWAN
+      'UA' => 'Province',
+      'US' => 'State',
+      'UY' => 'Department',
+      'VE' => 'State',
+      // 'VI' => '', // Virgin Islands (U.S.) is a territory of the U.S.
+      'VN' => 'Province',
+      // 'YU' => '', // Unsure
+      'ZA' => 'Province',
+    );
+    
+    if(!empty($administrative_area_terms[$address['country']])) {
+    	 $format['locality_block']['administrative_area']['#title'] = t($administrative_area_terms[$address['country']]);
+    }
   }
 
   // A few contries have a well-known list of administrative divisions.
@@ -160,116 +224,116 @@ function addressfield_format_address_generate(&$format, $address, $context = arr
   else if ($address['country'] == 'IT') {
     $format['locality_block']['administrative_area']['#options'] = array(
       ''   => t('--'),
-      'AG' => 'Agrigento',
-      'AL' => 'Alessandria',
-      'AN' => 'Ancona',
-      'AO' => 'Valle d\'Aosta/Vallée d\'Aoste',
-      'AP' => 'Ascoli Piceno',
-      'AQ' => 'L\'Aquila',
-      'AR' => 'Arezzo',
-      'AT' => 'Asti',
-      'AV' => 'Avellino',
-      'BA' => 'Bari',
-      'BG' => 'Bergamo',
-      'BI' => 'Biella',
-      'BL' => 'Belluno',
-      'BN' => 'Benevento',
-      'BO' => 'Bologna',
-      'BR' => 'Brindisi',
-      'BS' => 'Brescia',
-      'BT' => 'Barletta-Andria-Trani',
-      'BZ' => 'Bolzano/Bozen',
-      'CA' => 'Cagliari',
-      'CB' => 'Campobasso',
-      'CE' => 'Caserta',
-      'CH' => 'Chieti',
-      'CI' => 'Carbonia-Iglesias',
-      'CL' => 'Caltanissetta',
-      'CN' => 'Cuneo',
-      'CO' => 'Como',
-      'CR' => 'Cremona',
-      'CS' => 'Cosenza',
-      'CT' => 'Catania',
-      'CZ' => 'Catanzaro',
-      'EN' => 'Enna',
-      'FC' => 'Forlì-Cesena',
-      'FE' => 'Ferrara',
-      'FG' => 'Foggia',
-      'FI' => 'Firenze',
-      'FM' => 'Fermo',
-      'FR' => 'Frosinone',
-      'GE' => 'Genova',
-      'GO' => 'Gorizia',
-      'GR' => 'Grosseto',
-      'IM' => 'Imperia',
-      'IS' => 'Isernia',
-      'KR' => 'Crotone',
-      'LC' => 'Lecco',
-      'LE' => 'Lecce',
-      'LI' => 'Livorno',
-      'LO' => 'Lodi',
-      'LT' => 'Latina',
-      'LU' => 'Lucca',
-      'MB' => 'Monza e Brianza',
-      'MC' => 'Macerata',
-      'ME' => 'Messina',
-      'MI' => 'Milano',
-      'MN' => 'Mantova',
-      'MO' => 'Modena',
-      'MS' => 'Massa-Carrara',
-      'MT' => 'Matera',
-      'NA' => 'Napoli',
-      'NO' => 'Novara',
-      'NU' => 'Nuoro',
-      'OG' => 'Ogliastra',
-      'OR' => 'Oristano',
-      'OT' => 'Olbia-Tempio',
-      'PA' => 'Palermo',
-      'PC' => 'Piacenza',
-      'PD' => 'Padova',
-      'PE' => 'Pescara',
-      'PG' => 'Perugia',
-      'PI' => 'Pisa',
-      'PN' => 'Pordenone',
-      'PO' => 'Prato',
-      'PR' => 'Parma',
-      'PT' => 'Pistoia',
-      'PU' => 'Pesaro e Urbino',
-      'PV' => 'Pavia',
-      'PZ' => 'Potenza',
-      'RA' => 'Ravenna',
-      'RC' => 'Reggio di Calabria',
-      'RE' => 'Reggio nell\'Emilia',
-      'RG' => 'Ragusa',
-      'RI' => 'Rieti',
-      'RM' => 'Roma',
-      'RN' => 'Rimini',
-      'RO' => 'Rovigo',
-      'SA' => 'Salerno',
-      'SI' => 'Siena',
-      'SO' => 'Sondrio',
-      'SP' => 'La Spezia',
-      'SR' => 'Siracusa',
-      'SS' => 'Sassari',
-      'SV' => 'Savona',
-      'TA' => 'Taranto',
-      'TE' => 'Teramo',
-      'TN' => 'Trento',
-      'TO' => 'Torino',
-      'TP' => 'Trapani',
-      'TR' => 'Terni',
-      'TS' => 'Trieste',
-      'TV' => 'Treviso',
-      'UD' => 'Udine',
-      'VA' => 'Varese',
-      'VB' => 'Verbano-Cusio-Ossola',
-      'VC' => 'Vercelli',
-      'VE' => 'Venezia',
-      'VI' => 'Vicenza',
-      'VR' => 'Verona',
-      'VS' => 'Medio Campidano',
-      'VT' => 'Viterbo',
-      'VV' => 'Vibo Valentia',
+      'AG' =>	'Agrigento',
+      'AL' =>	'Alessandria',
+      'AN' =>	'Ancona',
+      'AO' =>	'Valle d\'Aosta/Vallée d\'Aoste',
+      'AP' =>	'Ascoli Piceno',
+      'AQ' =>	'L\'Aquila',
+      'AR' =>	'Arezzo',
+      'AT' =>	'Asti',
+      'AV' =>	'Avellino',
+      'BA' =>	'Bari',
+      'BG' =>	'Bergamo',
+      'BI' =>	'Biella',
+      'BL' =>	'Belluno',
+      'BN' =>	'Benevento',
+      'BO' =>	'Bologna',
+      'BR' =>	'Brindisi',
+      'BS' =>	'Brescia',
+      'BT' =>	'Barletta-Andria-Trani',
+      'BZ' =>	'Bolzano/Bozen',
+      'CA' =>	'Cagliari',
+      'CB' =>	'Campobasso',
+      'CE' =>	'Caserta',
+      'CH' =>	'Chieti',
+      'CI' =>	'Carbonia-Iglesias',
+      'CL' =>	'Caltanissetta',
+      'CN' =>	'Cuneo',
+      'CO' =>	'Como',
+      'CR' =>	'Cremona',
+      'CS' =>	'Cosenza',
+      'CT' =>	'Catania',
+      'CZ' =>	'Catanzaro',
+      'EN' =>	'Enna',
+      'FC' =>	'Forlì-Cesena',
+      'FE' =>	'Ferrara',
+      'FG' =>	'Foggia',
+      'FI' =>	'Firenze',
+      'FM' =>	'Fermo',
+      'FR' =>	'Frosinone',
+      'GE' =>	'Genova',
+      'GO' =>	'Gorizia',
+      'GR' =>	'Grosseto',
+      'IM' =>	'Imperia',
+      'IS' =>	'Isernia',
+      'KR' =>	'Crotone',
+      'LC' =>	'Lecco',
+      'LE' =>	'Lecce',
+      'LI' =>	'Livorno',
+      'LO' =>	'Lodi',
+      'LT' =>	'Latina',
+      'LU' =>	'Lucca',
+      'MB' =>	'Monza e Brianza',
+      'MC' =>	'Macerata',
+      'ME' =>	'Messina',
+      'MI' =>	'Milano',
+      'MN' =>	'Mantova',
+      'MO' =>	'Modena',
+      'MS' =>	'Massa-Carrara',
+      'MT' =>	'Matera',
+      'NA' =>	'Napoli',
+      'NO' =>	'Novara',
+      'NU' =>	'Nuoro',
+      'OG' =>	'Ogliastra',
+      'OR' =>	'Oristano',
+      'OT' =>	'Olbia-Tempio',
+      'PA' =>	'Palermo',
+      'PC' =>	'Piacenza',
+      'PD' =>	'Padova',
+      'PE' =>	'Pescara',
+      'PG' =>	'Perugia',
+      'PI' =>	'Pisa',
+      'PN' =>	'Pordenone',
+      'PO' =>	'Prato',
+      'PR' =>	'Parma',
+      'PT' =>	'Pistoia',
+      'PU' =>	'Pesaro e Urbino',
+      'PV' =>	'Pavia',
+      'PZ' =>	'Potenza',
+      'RA' =>	'Ravenna',
+      'RC' =>	'Reggio di Calabria',
+      'RE' =>	'Reggio nell\'Emilia',
+      'RG' =>	'Ragusa',
+      'RI' =>	'Rieti',
+      'RM' =>	'Roma',
+      'RN' =>	'Rimini',
+      'RO' =>	'Rovigo',
+      'SA' =>	'Salerno',
+      'SI' =>	'Siena',
+      'SO' =>	'Sondrio',
+      'SP' =>	'La Spezia',
+      'SR' =>	'Siracusa',
+      'SS' =>	'Sassari',
+      'SV' =>	'Savona',
+      'TA' =>	'Taranto',
+      'TE' =>	'Teramo',
+      'TN' =>	'Trento',
+      'TO' =>	'Torino',
+      'TP' =>	'Trapani',
+      'TR' =>	'Terni',
+      'TS' =>	'Trieste',
+      'TV' =>	'Treviso',
+      'UD' =>	'Udine',
+      'VA' =>	'Varese',
+      'VB' =>	'Verbano-Cusio-Ossola',
+      'VC' =>	'Vercelli',
+      'VE' =>	'Venezia',
+      'VI' =>	'Vicenza',
+      'VR' =>	'Verona',
+      'VS' =>	'Medio Campidano',
+      'VT' =>	'Viterbo',
+      'VV' =>	'Vibo Valentia',
     );
     $format['locality_block']['administrative_area']['#title'] = t('Province');
   }
@@ -324,22 +388,9 @@ function addressfield_format_address_generate(&$format, $address, $context = arr
     );
     $format['locality_block']['administrative_area']['#title'] = t('Province');
   }
-  else if ($address['country'] == 'AU') {
-    $format['locality_block']['administrative_area']['#options'] = array(
-      ''   => t('--'),
-      'ACT' => t('Australian Capital Territory'),
-      'NSW' => t('New South Wales'),
-      'NT' => t('Northern Territory'),
-      'QLD' => t('Queensland'),
-      'SA' => t('South Australia'),
-      'TAS' => t('Tasmania'),
-      'VIC' => t('Victoria'),
-      'WA' => t('Western Australia'),
-    );
-  }
 
   // Those countries tend to put the postal code after the locality.
-  if (in_array($address['country'], array('AU', 'BD', 'BF', 'BH', 'BM', 'BN', 'BT', 'CA', 'FM', 'GB', 'ID', 'IN', 'JM', 'JO', 'KH', 'LB', 'LS', 'LV', 'MM', 'MN', 'MV', 'MW', 'NG', 'NP', 'NZ', 'PE', 'PK', 'PR', 'PW', 'SA', 'SG', 'SO', 'TH', 'US', 'VI', 'VG', 'VN'))) {
+  if (in_array($address['country'], array('AU', 'BD', 'BF', 'BH', 'BM', 'BN', 'BT', 'CA', 'FM', 'GB', 'ID', 'IE', 'IN', 'JM', 'JO', 'KH', 'LB', 'LS', 'LV', 'MM', 'MN', 'MV', 'MW', 'NG', 'NP', 'NZ', 'PE', 'PK', 'PR', 'PW', 'SA', 'SG', 'SO', 'TH', 'US', 'VI', 'VG', 'VN'))) {
     // Take the widget out of the array.
     $postal_code_widget = $format['locality_block']['postal_code'];
     $postal_code_widget['#prefix'] = ' ';
@@ -354,44 +405,6 @@ function addressfield_format_address_generate(&$format, $address, $context = arr
     unset($format['locality_block'][$first_child]['#prefix']);
   }
 
-  // GB-specific tweaks
-  if ($address['country'] == 'GB') {
-    // Locality
-    $format['locality_block']['locality'] = array_merge(
-      $format['locality_block']['locality'],
-      array(
-        '#title' => t('Town/City'),
-        '#weight' => 40,
-        '#prefix' => '',
-        '#tag' => 'div',
-      )
-    );
-
-    // Administrative
-    $format['locality_block']['administrative_area'] = array_merge(
-      $format['locality_block']['administrative_area'],
-      array(
-        '#title' => t('County'),
-        '#required' => FALSE,
-        '#weight' => 50,
-        '#size' => 30,
-        '#prefix' => '',
-        '#tag' => 'div',
-      )
-    );
-
-    // Postal code
-    $format['locality_block']['postal_code'] = array_merge(
-      $format['locality_block']['postal_code'],
-      array(
-        '#title' => t('Postcode'),
-        '#weight' => 60,
-        '#prefix' => '',
-        '#tag' => 'div',
-      )
-    );
-  }
-
   if ($context['mode'] == 'form') {
     // Provide a wrapper ID for AJAX replacement based on country selection.
     if (!isset($format['#wrapper_id'])) {
