Index: trunk/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java	(revision 9233)
+++ trunk/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java	(revision 9234)
@@ -11,5 +11,7 @@
 import java.awt.RenderingHints;
 import java.awt.Stroke;
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
@@ -224,4 +226,5 @@
         if (colorModeDynamic) {
             if (colored == ColorMode.VELOCITY) {
+                final List<Double> velocities = new ArrayList<>();
                 for (Collection<WayPoint> segment : data.getLinesIterable(null)) {
                     if (!forceLines) {
@@ -236,4 +239,5 @@
                             double vel = c.greatCircleDistance(oldWp.getCoor())
                                     / (trkPnt.time - oldWp.time);
+                            velocities.add(vel);
                             if (vel > maxval) {
                                 maxval = vel;
@@ -246,4 +250,7 @@
                     }
                 }
+                Collections.sort(velocities);
+                minval = velocities.get(velocities.size() / 20); // 5% percentile to remove outliers
+                maxval = velocities.get(velocities.size() * 19 / 20); // 95% percentile to remove outliers
                 if (minval >= maxval) {
                     velocityScale.setRange(0, 120/3.6);
