diff --git a/supported/location.fr.inc b/supported/location.fr.inc
index ab4be7c..79f8bb6 100644
--- a/supported/location.fr.inc
+++ b/supported/location.fr.inc
@@ -4,67 +4,136 @@
 
 function location_province_list_fr() {
   return array(
-    'A67' => "Bas-Rhin - Alsace",
-    'A68' => "Haut-Rhin - Alsace",
-    'B24' => "Dordogne - Aquitaine",
-    'B33' => "Gironde - Aquitaine",
-    'B40' => "Landes - Aquitaine",
-    'B47' => "Lot-et-Garonne - Aquitaine",
-    'B64' => "Pyrenees-Atlantiques - Aquitaine",
-    'B79' => "Deux-Sevres - Aquitaine",
-    'C03' => "Allier - Auvergne",
-    'C15' => "Cantal - Auvergne",
-    'C43' => "Haute-Loire - Auvergne",
-    'C63' => "Pu-de-Dme - Auvergne",
-    'D21' => "Cote-d'Or - Bourgogne",
-    'D58' => "Nievre - Bourgogne",
-    'D71' => "Saone-et-Loire - Bourgogne",
-    'D89' => "Yonne - Bourgogne",
-    'E22' => "Cotes-d'Armor - Bretagne",
-    'E29' => "Finistere - Bretagne",
-    'E35' => "Ille-et-Vilaine - Bretagne",
-    'E56' => "Morbihan - Bretagne",
-    'F18' => "Cher - Centre",
-    'F28' => "Eure-et-Loir - Centre",
-    'F36' => "Indre - Centre",
-    'F37' => "Indre-et-Loire - Centre",
-    'F41' => "Loir-et-Cher - Centre",
-    'F45' => "Loiret - Centre",
-    'G08' => "Ardennes - Champagne-Ardenne",
-    'G10' => "Aube - Champagne-Ardenne",
-    'G51' => "Marne - Champagne-Ardenne",
-    'G52' => "Haute-Marne - Champagne-Ardenne",
-    'H2A' => "Corse-du-Sud - Corse",
-    'H2B' => "Haute-Corse - Corse",
-    'I25' => "Doubs - Franche-Comte",
-    'I39' => "Jura - Franche-Comte",
-    'I70' => "Haute-Saone - Franche-Comte",
-    'I90' => "Haute-Saone - Territoire de Belfort",
-    'J75' => "Paris - Ile-de-France",
-    'J77' => "Seine-et-Marne - Ile-de-France",
-    'J78' => "Yvelines - Ile-de-France",
-    'J91' => "Essonne - Ile-de-France",
-    'J92' => "Hauts-de-Seine - Ile-de-France",
-    'J93' => "Seine-Saint-Denis - Ile-de-France",
-    'J94' => "Val-de-Marne - Ile-de-France",
-    'J95' => "Val-d'Oise - Ile-de-France",
-    'U04' => "Alpes-de-Haute-Provence - Provence-Alpes-Cote d'Azur",
-    'U05' => "Hautes-Alpes - Provence-Alpes-Cote d'Azur",
-    'U06' => "Alpes-Maritimes - Provence-Alpes-Cote d'Azur",
-    'U13' => "Bouches-du-Rhone - Provence-Alpes-Cote d'Azur",
-    'U83' => "Var - Provence-Alpes-Cote d'Azur",
-    'U84' => "Vaucluse - Provence-Alpes-Cote d'Azur",
+   
+    'A01' => "Ain (01)",
+    'A02' => "Aisne (02)",
+    'A03' => "Allier (03)",
+    'A04' => "Alpes-de-Haute-Provence (04)",
+    'A05' => "Hautes-Alpes (05)",
+    'A06' => "Alpes-Maritimes (06)",
+    'A07' => "Ardeche(07)",
+    'A08' => "Ardennes (08)",
+    'A09' => "Ariege (09)",
+    'A10' => "Aube (10)",
+    'A11' => "Aude (11)",
+    'A12' => "Aveyron (12)",
+    'A13' => "Bouches-du-Rhone (13)",
+    'A14' => "Calvados (14)",
+    'A15' => "Cantal (15)",
+    'A16' => "Charente (16)",
+    'A17' => "Charente-Maritime (17)", 
+    'A18' => "Cher (18)",
+    'A19' => "Correze (19)",
+    'A21' => "Cote-d'Or (21)",
+    'A22' => "Cotes-d'Armor (22)",
+    'A23' => "Creuse (23)",
+    'A24' => "Dordogne (24)",
+    'A25' => "Doubs (25)",
+    'A26' => "Drome (26)",
+    'A27' => "Eure (27)",
+    'A28' => "Eure-et-Loir (28)",
+    'A29' => "Finistere (29)",
+    'A30' => "Gard (30)",
+    'A31' => "Haute-Garonne (31)",
+    'A32' => "Gers (32)",
+    'A33' => "Gironde (33)",
+    'A34' => "Herault (34)",
+    'A35' => "Ille-et-Vilaine (35)",
+    'A36' => "Indre (36)",
+    'A37' => "Indre-et-Loire (37)",
+    'A38' => "Isere(38)",
+    'A39' => "Jura (39)",
+    'A40' => "Landes (40)",
+    'A41' => "Loir-et-Cher (41)",
+    'A42' => "Loire (42)",
+    'A43' => "Haute-Loire (43)",
+    'A44' => "Loire-Atlantique (44)",
+    'A45' => "Loiret (45)",
+    'A46' => "Lot (46)",
+    'A47' => "Lot-et-Garonne (47)",
+    'A48' => "Lozere(48)",
+    'A49' => "Maine-et-Loire (49)",
+    'A50' => "Manche (50)",
+    'A51' => "Marne (51)",
+    'A52' => "Haute-Marne (52)",
+    'A53' => "Mayenne (53)",
+    'A54' => "Meurthe-et-Moselle (54)",
+    'A55' => "Meuse (55)",
+    'A56' => "Morbihan (56)",
+    'A57' => "Moselle (57)",
+    'A58' => "Nievre(58)",
+    'A59' => "Nord (59)",
+    'A60' => "Oise (60)",
+    'A61' => "Orne (61)",
+    'A62' => "Pas-de-Calais (62)",
+    'A63' => "Puy-de-Dome (63)",
+    'A64' => "Pyrenees-Atlantiques (64)",
+    'A65' => "Hautes-Pyrenees (65)",
+    'A66' => "Pyrenees-Orientales (66)",
+    'A67' => "Bas-Rhin (67)",
+    'A68' => "Haut-Rhin (68)",
+    'A69' => "Rhone (69)",
+    'A70' => "Haute-Saone (70)",
+    'A71' => "Saone-et-Loire (71)",
+    'A72' => "Sarthe (72)",
+    'A73' => "Savoie (73)",
+    'A74' => "Haute-Savoie (74)",
+    'A75' => "Paris (75)",
+    'A76' => "Seine-Maritime (76)",
+    'A77' => "Seine-et-Marne (77)",
+    'A78' => "Yvelines (78)",
+    'A79' => "Deux-Sevres (79)",
+    'A80' => "Somme (80)",
+    'A81' => "Tarn (81)",
+    'A82' => "Tarn-et-Garonne (82)",
+    'A83' => "Var (83)",
+    'A84' => "Vaucluse (84)",
+    'A85' => "Vendee (85)",
+    'A86' => "Vienne (86)",
+    'A87' => "Haute-Vienne (87)",
+    'A88' => "Vosges (88)",
+    'A89' => "Yonne (89)",
+    'A90' => "Territoire de Belfort (90)",
+    'A91' => "Essonne (91)",
+    'A92' => "Hauts-de-Seine (92)",
+    'A93' => "Seine-Saint-Denis (93)",
+    'A94' => "Val-de-Marne (94)",
+    'A95' => "Val-d'Oise (95)",
+    'B2A' => "Corse-du-Sud (2A)",
+    'B2B' => "Haute-Corse (2B)",
+    'C71' => "Guadeloupe (971)",
+    'C72' => "Martinique (972)",
+    'C73' => "Guyane (973)",
+    'C74' => "La Reunion (974)",
   );
 }
-
-/**
- * Returns minimum and maximum latitude and longitude needed to create a bounding box.
- */
-function location_bounds_fr() {
+function location_map_link_fr_providers() {
   return array(
-    'minlng' => -176.3726,
-    'minlat' => -27.946767,
-    'maxlng' => 172.15695,
-    'maxlat' => 51.122333,
+    'google' => array(
+      'name' => 'Google Maps',
+      'url' => 'http://maps.google.fr/',
+      'tos' => 'http://maps.google.fr//help/terms_maps.html',
+    ),
   );
 }
+
+function location_map_link_fr_default_providers() {
+  return array('google');
+}
+
+function location_map_link_fr_google($location = array()) {
+  $query_params = array();
+
+  foreach (array('street', 'city', 'postal_code', 'country') as $field) {
+    if (isset($location[$field])) {
+      $query_params[] = $location[$field];
+    }
+  }
+
+  if (count($query_params)) {
+    return ('http://maps.google.fr/?q='. urlencode(implode(', ', $query_params)));
+  }
+  else {
+    return NULL;
+  }
+}
