diff --git a/src/org/openstreetmap/josm/gui/util/imagery/CameraPlane.java b/src/org/openstreetmap/josm/gui/util/imagery/CameraPlane.java
index 620f9eb940..249d0ad2b9 100644
--- a/src/org/openstreetmap/josm/gui/util/imagery/CameraPlane.java
+++ b/src/org/openstreetmap/josm/gui/util/imagery/CameraPlane.java
@@ -182,7 +182,7 @@ public class CameraPlane {
         setRotation(vec.getPolarAngle(), vec.getAzimuthalAngle());
     }
 
-    public Vector3D getRotation() {
+    public synchronized Vector3D getRotation() {
         return this.rotation;
     }
 
diff --git a/src/org/openstreetmap/josm/gui/util/imagery/Vector3D.java b/src/org/openstreetmap/josm/gui/util/imagery/Vector3D.java
index d643ed5152..92d1e05c47 100644
--- a/src/org/openstreetmap/josm/gui/util/imagery/Vector3D.java
+++ b/src/org/openstreetmap/josm/gui/util/imagery/Vector3D.java
@@ -1,6 +1,8 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui.util.imagery;
 
+import org.openstreetmap.josm.tools.Utils;
+
 /**
  * A basic 3D vector class (immutable)
  * @author Taylor Smock (documentation, spherical conversions)
@@ -236,7 +238,7 @@ public final class Vector3D {
     public boolean equals(Object o) {
         if (o instanceof Vector3D) {
             Vector3D other = (Vector3D) o;
-            return this.x == other.x && this.y == other.y && this.z == other.z;
+            return Utils.equalsEpsilon(this.x, other.x) && Utils.equalsEpsilon(this.y, other.y) && Utils.equalsEpsilon(this.z, other.z);
         }
         return false;
     }
