diff -rup geocode/includes/modules/filefield/gpx.inc geocode_new/includes/modules/filefield/gpx.inc
--- geocode/includes/modules/filefield/gpx.inc	2009-03-03 05:14:07.000000000 +1100
+++ includes/modules/filefield/gpx.inc	2010-11-25 16:23:28.930600307 +1100
@@ -49,6 +49,13 @@ function gpx_points($items, $return_valu
         $p[$type] = gpx_callbacks($children->item($j), $children, $j);
       }
 
+      // We don't want consecutive duplicate points.
+      // They are pointless and will cause division by zero errors
+      // during the miles per hour calculation.
+      if (isset($prev) && array_diff_assoc($p, $prev) == array()) {
+        continue;
+      }
+
       // Calculate some extra values
       if (isset($p['time'])) {
 
