Index: uk/me/parabola/imgfmt/app/Coord.java
===================================================================
--- uk/me/parabola/imgfmt/app/Coord.java	(revision 3390)
+++ uk/me/parabola/imgfmt/app/Coord.java	(working copy)
@@ -771,8 +771,13 @@
 		double frac;
 		if (deltaLon == 0 && deltaLat == 0) 
 			frac = 0;
-		else 
-			frac = ((pLon - aLon) * deltaLon + (pLat - aLat) * deltaLat) / (deltaLon * deltaLon + deltaLat * deltaLat);
+		else {
+			// scale for longitude deltas by cosine of average latitude  
+			double scale = Math.cos(Coord.int30ToRadians((aLat + bLat + pLat) / 3) );
+			double deltaLonAP = scale * (pLon - aLon);
+			deltaLon = scale * deltaLon;
+			frac = (deltaLonAP * deltaLon + (pLat - aLat) * deltaLat) / (deltaLon * deltaLon + deltaLat * deltaLat);
+		}
 
 		double distance;
 		if (frac <= 0) {
