Index: trunk/src/org/openstreetmap/josm/data/Bounds.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Bounds.java	(revision 6203)
+++ trunk/src/org/openstreetmap/josm/data/Bounds.java	(revision 6204)
@@ -414,5 +414,6 @@
      */
     public boolean isCollapsed() {
-        return (minLat == maxLat) && (minLon == maxLon);
+        return Double.doubleToLongBits(minLat) == Double.doubleToLongBits(maxLat) 
+            && Double.doubleToLongBits(minLon) == Double.doubleToLongBits(maxLon);
     }
 
Index: trunk/src/org/openstreetmap/josm/data/osm/BBox.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/BBox.java	(revision 6203)
+++ trunk/src/org/openstreetmap/josm/data/osm/BBox.java	(revision 6204)
@@ -115,17 +115,8 @@
      */
     public void add(double x, double y) {
-        
-        if (x < xmin) {
-            xmin = x;
-        } else if (x > xmax) {
-            xmax = x;
-        }
-        
-        if (y < ymin) {
-            ymin = y;
-        } else if (y > ymax) {
-            ymax = y;
-        }
-
+        xmin = Math.min(xmin, x);
+        xmax = Math.max(xmax, x);
+        ymin = Math.min(ymin, y);
+        ymax = Math.max(ymax, y);
         sanity();
     }
