diff --git a/location.inc b/location.inc
index 8f170d2..b127978 100644
--- a/location.inc
+++ b/location.inc
@@ -778,9 +778,17 @@ function location_latlon_rough($location = array()) {
   if (function_exists($latlon_function)) {
     return $latlon_function($location);
   }
-  else {
-    return NULL;
+  $pcd_func = 'location_get_postalcode_data_'. $location['country'];
+  if (function_exists($pcd_func)) {
+    return $pcd_func($location);
+  }
+  $res = db_query("SELECT latitude, longitude FROM {zipcode} WHERE".
+    " zip = '%s' AND country = '%s'", $location['postal_code'], $location['country']);
+  if ($r = db_fetch_array($res)) {
+    return array('lat' => $r['latitude'], 'lon' => $r['longitude']);
   }
+
+  return NULL;
 }
  
 
@@ -1183,9 +1191,9 @@ function _location_country_select_options($value = '', $required = FALSE, $funct
     $function = ($function == 'nearby_postalcodes_bylocation' || $function == 'nearby_postalcodes_bylatlon') ? 'latlon_rough' : $function;
     $countrycodes = array();
     foreach (location_configured_countries() as $code => $full_name) {
-      if (function_exists('location_'. $function .'_'. $code)) {
+      //if (function_exists('location_'. $function .'_'. $code)) {
         $countrycodes[$code] = $full_name;
-      }
+      //}
     }
     $countrycodes = array_merge(array('' => ''), $countrycodes);
   }
diff --git a/location.module b/location.module
index 91261f8..4709a7e 100644
--- a/location.module
+++ b/location.module
@@ -86,7 +86,7 @@ function location_search_form($location_params = array(), $proximity_params = ar
   $form = array();
   
   $location_search_distance_unit_setting = variable_get('location_search_distance_unit', 0);
-  $proximity_suppressed_values = $location_search_distaince_unit_setting ? array('unit' => $location_search_distance_unit_setting) : array();
+  $proximity_suppressed_values = $location_search_distance_unit_setting ? array('unit' => $location_search_distance_unit_setting) : array();
   $form['proximity'] = location_proximity_form($proximity_params, $proximity_suppressed_values);
   
   $location_suppressed_values = variable_get('location_suppress_country', 0) ? array('country' => variable_get('location_default_country', 'us')) : array();
@@ -189,7 +189,7 @@ function location_search_results($location_params, $proximity_params) {
     $distance_float
   );
   
-  $pager_count_query = 'SELECT COUNT(DISTINCT nid) AS count FROM {node} n INNER JOIN {location} l ON n.vid = l.eid WHERE l.type =\'node\' AND l.latitude > '. $latrange[0] .' AND l.latitude < '. $latrange[1] .' AND l.longitude > '. $lonrange[0] .' AND l.longitude < '. $lonrange[1] .' AND '. earth_distance_sql($latlon['lon'], $latlon['lat']) .' < '. $distance_float;
+  $pager_count_query = 'SELECT COUNT(nid) AS count FROM {node} n INNER JOIN {location} l ON n.vid = l.eid WHERE l.type =\'node\' AND l.latitude > '. $latrange[0] .' AND l.latitude < '. $latrange[1] .' AND l.longitude > '. $lonrange[0] .' AND l.longitude < '. $lonrange[1] .' AND '. earth_distance_sql($latlon['lon'], $latlon['lat']) .' < '. $distance_float;
   
   $pager_query = 'SELECT n.nid, n.vid, l.*, '. earth_distance_sql($latlon['lon'], $latlon['lat'], 'l') .' AS distance FROM {node} n INNER JOIN {location} l ON n.vid = l.eid WHERE l.type =\'node\' AND l.latitude > '. $latrange[0] .' AND l.latitude < '. $latrange[1] .' AND l.longitude > '. $lonrange[0] .' AND l.longitude < '. $lonrange[1] .' AND '. earth_distance_sql($latlon['lon'], $latlon['lat']) .' < '. $distance_float .' GROUP BY n.nid ORDER by distance';
   
