Index: /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 4830)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 4831)
@@ -32,4 +32,5 @@
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.gpx.GpxData;
+import org.openstreetmap.josm.data.gpx.GpxLink;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
@@ -77,9 +78,25 @@
         this.fromLayer = fromLayer;
         double firstTime = -1.0;
+        String lastLinkedFile = "";
 
         for (WayPoint wpt : indata.waypoints) {
+            /* calculate time differences in waypoints */
             double time = wpt.time;
-            if (firstTime < 0) {
+            boolean wpt_has_link = wpt.attr.containsKey(GpxData.META_LINKS);
+            if (firstTime < 0 && wpt_has_link) {
                 firstTime = time;
+                for (GpxLink oneLink : (Collection<GpxLink>) wpt.attr.get(GpxData.META_LINKS)) {
+                    lastLinkedFile = oneLink.uri;
+                    break;
+                }
+            }
+            if (wpt_has_link) {
+                for (GpxLink oneLink : (Collection<GpxLink>) wpt.attr.get(GpxData.META_LINKS)) {
+                    if (!oneLink.uri.equals(lastLinkedFile)) {
+                        firstTime = time;
+                    }
+                    lastLinkedFile = oneLink.uri;
+                    break;
+                }
             }
             Marker m = Marker.createMarker(wpt, indata.storageFile, this, time, time - firstTime);
