diff --git a/models/res_partner.py b/models/res_partner.py
index 3268f358fd49148bc45c141e2531a394ef0e8bd5..41bb440ef39ef4919f70fb623824f02d0cbdaabf 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -20,8 +20,11 @@ def geo_find(addr):
         raise UserError(_('Cannot contact geolocation servers. Please make sure that your Internet connection is up and running (%s).') % e)
 
     try:
-        geo = result[0]
-        return [float(geo['lat']), float(geo['lon'])]
+        if result:
+            geo = result[0]
+            return [float(geo['lat']), float(geo['lon'])]
+        else:
+            return None
     except (KeyError, ValueError):
         return None
 
@@ -48,21 +51,23 @@ class ResPartner(models.Model):
     def geo_localize(self):
         # We need country names in English below
         for partner in self.with_context(lang='en_US'):
-            result = geo_find(geo_query_address(street=partner.street,
-                                                zip=partner.zip,
-                                                city=partner.city,
-                                                country=partner.country_id.name))
+            if partner.city:
+                result = geo_find(geo_query_address(street=partner.street,
+                                                    zip=partner.zip,
+                                                    city=partner.city,
+                                                    country=partner.country_id.name))
 
-            if result is None:
-                result = geo_find(geo_query_address(
-                    city=partner.city,
-                    country=partner.country_id.name
-                ))
+                if result is None:
+                    result = geo_find(geo_query_address(
+                        city=partner.city,
+                        country=partner.country_id.name
+                    ))
+
+                if result:
+                    partner.write({
+                        'partner_latitude': result[0],
+                        'partner_longitude': result[1],
+                        'date_localization': fields.Date.context_today(partner)
+                    })
 
-            if result:
-                partner.write({
-                    'partner_latitude': result[0],
-                    'partner_longitude': result[1],
-                    'date_localization': fields.Date.context_today(partner)
-                })
         return True