Index: /trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java	(revision 18216)
+++ /trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java	(revision 18217)
@@ -12,4 +12,5 @@
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Objects;
 
 import javax.swing.JOptionPane;
@@ -113,4 +114,19 @@
         public int compareTo(PolarNode o) {
             return Double.compare(a, o.a);
+        }
+
+        @Override
+        public int hashCode() {
+            return Objects.hash(a, node);
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (this == obj)
+                return true;
+            if (obj == null || getClass() != obj.getClass())
+                return false;
+            PolarNode other = (PolarNode) obj;
+            return Double.doubleToLongBits(a) == Double.doubleToLongBits(other.a) && Objects.equals(node, other.node);
         }
     }
Index: /trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterManager.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterManager.java	(revision 18216)
+++ /trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterManager.java	(revision 18217)
@@ -161,4 +161,19 @@
             return new Match(rule, value);
         }
+
+        @Override
+        public int hashCode() {
+            return 31 * super.hashCode() + Objects.hash(rule, value);
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (this == obj)
+                return true;
+            if (!super.equals(obj) || getClass() != obj.getClass())
+                return false;
+            CompiledFilter other = (CompiledFilter) obj;
+            return Objects.equals(rule, other.rule) && value == other.value;
+        }
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplay.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplay.java	(revision 18216)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplay.java	(revision 18217)
@@ -242,4 +242,19 @@
             }
         }
+
+        @Override
+        public int hashCode() {
+            return 31 * super.hashCode() + Objects.hash(init);
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (this == obj)
+                return true;
+            if (!super.equals(obj) || getClass() != obj.getClass())
+                return false;
+            VisRect other = (VisRect) obj;
+            return Objects.equals(init, other.init);
+        }
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/WikimediaCommonsEntry.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/WikimediaCommonsEntry.java	(revision 18216)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/WikimediaCommonsEntry.java	(revision 18217)
@@ -2,9 +2,10 @@
 package org.openstreetmap.josm.gui.layer.geoimage;
 
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Objects;
+
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.tools.Mediawiki;
-
-import java.net.MalformedURLException;
-import java.net.URL;
 
 /**
@@ -33,3 +34,18 @@
         return "File:" + title;
     }
+
+    @Override
+    public int hashCode() {
+        return 31 * super.hashCode() + Objects.hash(title);
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (!super.equals(obj) || getClass() != obj.getClass())
+            return false;
+        WikimediaCommonsEntry other = (WikimediaCommonsEntry) obj;
+        return Objects.equals(title, other.title);
+    }
 }
