Index: /trunk/src/org/openstreetmap/josm/data/Bounds.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/Bounds.java	(revision 2940)
+++ /trunk/src/org/openstreetmap/josm/data/Bounds.java	(revision 2941)
@@ -172,4 +172,16 @@
         return true;
     }
+    
+    /**
+     * The two bounds intersect? Compared to java Shape.intersects, if does not use
+     * the interior but the closure. (">=" instead of ">")
+     */
+    public boolean intersects(Bounds b) {
+	    return b.getMax().lat() >= minLat &&
+		    b.getMax().lon() >= minLon &&
+		    b.getMin().lat() <= maxLat &&
+		    b.getMin().lon() <= maxLon;
+    }
+    
 
     /**
Index: /trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(revision 2940)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(revision 2941)
@@ -613,5 +613,5 @@
         for (GpxTrack trk: data.tracks) {
             for (GpxTrackSegment trkSeg: trk.getSegments()) {
-                if (trkSeg.getBounds().asRect().intersects(box.asRect())) {
+                if (trkSeg.getBounds().intersects(box)) {
                     visibleSegments.add(trkSeg.getWayPoints());
                 }
