Index: geoip_language.module
===================================================================
--- geoip_language.module	(revision 41603)
+++ geoip_language.module	(working copy)
@@ -190,7 +190,20 @@
     'language' => $language,
   );
   drupal_write_record('geoip_language', $data);
+    $mapping = array();
+      $data = array(
+        'geoip' => array(),
+        'default' => language_default('prefix'),
+      );
+      $result = db_query('SELECT g.*, l.prefix FROM {geoip_language} g INNER JOIN {languages} l on g.language = l.language ORDER BY g.country ASC');
+      while ($row = db_fetch_object($result)) {
+        $mapping[$row->country] = $row->language;
+        $data['geoip'][$row->country] = $row;
+      }
 
+      // Add default
+      $file = file_save_data(serialize($data), 'geoip_language.txt', FILE_EXISTS_REPLACE);
+
   $countries = geoip_country_values();
   watchdog('geoip_language', 'GeoIP mapping created for %country', array('%country' => $countries[$country]));
 
@@ -202,7 +215,20 @@
  */
 function geoip_language_mapping_delete($country) {
   db_query('DELETE FROM {geoip_language} WHERE country="%s"', $country);
+    $mapping = array();
+      $data = array(
+        'geoip' => array(),
+        'default' => language_default('prefix'),
+      );
+      $result = db_query('SELECT g.*, l.prefix FROM {geoip_language} g INNER JOIN {languages} l on g.language = l.language ORDER BY g.country ASC');
+      while ($row = db_fetch_object($result)) {
+        $mapping[$row->country] = $row->language;
+        $data['geoip'][$row->country] = $row;
+      }
 
+      // Add default
+      $file = file_save_data(serialize($data), 'geoip_language.txt', FILE_EXISTS_REPLACE);
+
   $countries = geoip_country_values();
   watchdog('geoip_language', 'GeoIP mapping deleted for %country', array('%country' => $countries[$country]));
 
