Index: location.token.inc
===================================================================
--- location.token.inc	(revision 21)
+++ location.token.inc	(working copy)
@@ -16,6 +16,7 @@
       $countries = location_get_iso3166_list();
       // @@@ Strip virtual fields?
       foreach ($object->locations as $key => $location) {
+        _location_token_normalize(&$location);
         foreach ($location as $field => $value) {
           if (!is_array($value)) {
             $values["location-{$field}_{$key}"] = check_plain($value);
@@ -50,3 +51,44 @@
     return $tokens;
   }
 }
+
+/**
+ * normalization borrowed from _location_geo_logic()
+ */
+function _location_token_normalize(&$location) {
+  // Normalize coordinates.
+  if (!empty($location['latitude']) && !is_array($location['latitude'])) {
+    while ($location['latitude'] > 90) {
+      $location['latitude'] -= 180;
+    }
+    while ($location['latitude'] < -90) {
+      $location['latitude'] += 180;
+    }
+  }
+  if (!empty($location['longitude']) && !is_array($location['longitude'])) {
+    while ($location['longitude'] > 180) {
+      $location['longitude'] -= 360;
+    }
+    while ($location['longitude'] < -180) {
+      $location['longitude'] += 360;
+    }
+  }
+  
+  // If city and/or province weren't set, see if we can fill them in with
+  // postal data.
+  if (!empty($location['postal_code']) && !is_array($location['postal_code'])) {
+    if (empty($location['city']) || empty($location['province'])) {
+      if ($data = location_get_postalcode_data($location)) {
+        $location['city'] = $data['city'];
+        $location['province'] = $data['province'];
+      }
+    }
+  }
+
+  // Normalize province.
+  // Note: Validation is performed elsewhere. We assume that the province
+  // specified matches either the short or long form of a province.
+  if (!empty($location['province']) && !empty($location['country']) && !is_array($location['province']) && !is_array($location['country'])) {
+    $location['province'] = location_province_code($location['country'], $location['province']);
+  }
+}
