diff -rupN location/earth.inc location_new/earth.inc
--- location/earth.inc	2008-05-21 08:55:25.000000000 +1000
+++ earth.inc	2010-06-08 23:30:20.000000000 +1000
@@ -130,7 +130,15 @@ function earth_longitude_range($longitud
   $radius = earth_radius($latitude);
 
   $angle = $distance / $radius;
-  $diff = asin(sin($angle)/cos($lat));
+  // arcsin is only real for values between -1 & 1.
+  $diff = sin($angle)/cos($lat);
+  if ($diff > 1) {
+    $diff = 1;
+  }
+  else if ($diff < -1) {
+    $diff = -1;
+  }
+  $diff = asin($diff);
   $minlong = $long - $diff;
   $maxlong = $long + $diff;
   if ($minlong < -pi()) { $minlong = $minlong + pi()*2; }
