diff --git a/uc_store/countries/finland_246_1.cif b/uc_store/countries/finland_246_1.cif
deleted file mode 100644
index 7093ceb..0000000
--- a/uc_store/countries/finland_246_1.cif
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-function finland_install() {
-  // Make the entry in the country table.
-  // VALUES = Country ID, Country Name, 2-digit Code, 3-digit Code, File Version
-  db_insert('uc_countries')
-    ->fields(array(
-      'country_id' => 246,
-      'country_name' => 'Finland',
-      'country_iso_code_2' => 'FI',
-      'country_iso_code_3' => 'FIN',
-      'version' => 1,
-    ))
-    ->execute();
-
-  // FI has no postal zones in the Ubercart sense
-
-  // Set address format
-  uc_set_address_format(
-    246,
-    "!company\r\n".
-    "!first_name !last_name\r\n".
-    "!street1\r\n".
-    "!street2\r\n".
-    "!postal_code !city\r\n".
-    "!country_name_if"
-  );
-}
diff --git a/uc_store/countries/finland_246_2.cif b/uc_store/countries/finland_246_2.cif
new file mode 100644
index 0000000..655fab7
--- /dev/null
+++ b/uc_store/countries/finland_246_2.cif
@@ -0,0 +1,91 @@
+<?php
+
+function finland_install() {
+  // Make the entry in the country table.
+  // VALUES = Country ID, Country Name, 2-digit Code, 3-digit Code, File Version
+  db_insert('uc_countries')
+    ->fields(array(
+      'country_id' => 246,
+      'country_name' => 'Finland',
+      'country_iso_code_2' => 'FI',
+      'country_iso_code_3' => 'FIN',
+      'version' => 2,
+    ))
+    ->execute();
+
+  // VALUES = %d for ID, Parent Country ID, Zone Abbreviation, Zone Name
+  $zones = array(
+    array(246, 'FI-01', 'Ahvenanmaan maakunta'),
+    array(246, 'FI-02', 'Etelä-Karjal'),
+    array(246, 'FI-03', 'Etelä-Pohjanmaa'),
+    array(246, 'FI-04', 'Etelä-Savo'),
+    array(246, 'FI-05', 'Kainuu'),
+    array(246, 'FI-06', 'Kanta-Häme'),
+    array(246, 'FI-07', 'Keski-Pohjanmaa'),
+    array(246, 'FI-08', 'Keski-Suomi'),
+    array(246, 'FI-09', 'Kymenlaakso'),
+    array(246, 'FI-10', 'Lappi'),
+    array(246, 'FI-11', 'Pirkanmaa'),
+    array(246, 'FI-12', 'Pohjanmaa'),
+    array(246, 'FI-13', 'Pohjois-Karjala'),
+    array(246, 'FI-14', 'Pohjois-Pohjanmaa'),
+    array(246, 'FI-15', 'Pohjois-Savo'),
+    array(246, 'FI-16', 'Päijät-Häme'),
+    array(246, 'FI-17', 'Satakunta'),
+    array(246, 'FI-18', 'Uusimaa'),
+    array(246, 'FI-19', 'Varsinais-Suomi'),
+  );
+
+  $query = db_insert('uc_zones')->fields(array('zone_country_id', 'zone_code', 'zone_name'));
+  foreach ($zones as $zone) {
+    $query->values($zone);
+  }
+  $query->execute();
+
+  // Set address format
+  uc_set_address_format(
+    246,
+    "!company\r\n".
+    "!first_name !last_name\r\n".
+    "!street1\r\n".
+    "!street2\r\n".
+    "!postal_code !city\r\n".
+    "!country_name_if"
+  );
+}
+
+function finland_update($version) {
+  switch ($version) {
+    case 2:
+      // Add some missing zones
+      $zones = array(
+        array(246, 'FI-01', 'Ahvenanmaan maakunta'),
+        array(246, 'FI-02', 'Etelä-Karjal'),
+        array(246, 'FI-03', 'Etelä-Pohjanmaa'),
+        array(246, 'FI-04', 'Etelä-Savo'),
+        array(246, 'FI-05', 'Kainuu'),
+        array(246, 'FI-06', 'Kanta-Häme'),
+        array(246, 'FI-07', 'Keski-Pohjanmaa'),
+        array(246, 'FI-08', 'Keski-Suomi'),
+        array(246, 'FI-09', 'Kymenlaakso'),
+        array(246, 'FI-10', 'Lappi'),
+        array(246, 'FI-11', 'Pirkanmaa'),
+        array(246, 'FI-12', 'Pohjanmaa'),
+        array(246, 'FI-13', 'Pohjois-Karjala'),
+        array(246, 'FI-14', 'Pohjois-Pohjanmaa'),
+        array(246, 'FI-15', 'Pohjois-Savo'),
+        array(246, 'FI-16', 'Päijät-Häme'),
+        array(246, 'FI-17', 'Satakunta'),
+        array(246, 'FI-18', 'Uusimaa'),
+        array(246, 'FI-19', 'Varsinais-Suomi'),
+      );
+
+      $query = db_insert('uc_zones')->fields(array('zone_country_id', 'zone_code', 'zone_name'));
+      foreach ($zones as $zone) {
+        $query->values($zone);
+      }
+      $query->execute();
+
+      break;
+  }
+}
