Index: trunk/src/org/openstreetmap/josm/data/correction/TagCorrection.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/correction/TagCorrection.java	(revision 11084)
+++ trunk/src/org/openstreetmap/josm/data/correction/TagCorrection.java	(revision 11085)
@@ -53,10 +53,11 @@
     public boolean equals(Object o) {
         if (this == o) return true;
-        if (!(o instanceof TagCorrection)) return false;
+        if (o == null || getClass() != o.getClass())
+            return false;
         TagCorrection that = (TagCorrection) o;
         return Objects.equals(oldKey, that.oldKey) &&
-                Objects.equals(newKey, that.newKey) &&
-                Objects.equals(oldValue, that.oldValue) &&
-                Objects.equals(newValue, that.newValue);
+               Objects.equals(newKey, that.newKey) &&
+               Objects.equals(oldValue, that.oldValue) &&
+               Objects.equals(newValue, that.newValue);
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/MapStatus.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MapStatus.java	(revision 11084)
+++ trunk/src/org/openstreetmap/josm/gui/MapStatus.java	(revision 11085)
@@ -221,5 +221,5 @@
     private final transient List<StatusTextHistory> statusText = new ArrayList<>();
 
-    private static class StatusTextHistory {
+    protected static final class StatusTextHistory {
         private final Object id;
         private final String text;
Index: trunk/test/unit/org/openstreetmap/josm/data/correction/TagCorrectionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/correction/TagCorrectionTest.java	(revision 11085)
+++ trunk/test/unit/org/openstreetmap/josm/data/correction/TagCorrectionTest.java	(revision 11085)
@@ -0,0 +1,30 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.correction;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import nl.jqno.equalsverifier.EqualsVerifier;
+
+/**
+ * Unit tests for class {@link TagCorrection}.
+ */
+public class TagCorrectionTest {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Unit test of methods {@link TagCorrection#equals} and {@link TagCorrection#hashCode}.
+     */
+    @Test
+    public void testEqualsContract() {
+        EqualsVerifier.forClass(TagCorrection.class).usingGetClass().verify();
+    }
+}
Index: trunk/test/unit/org/openstreetmap/josm/gui/MapStatusTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/MapStatusTest.java	(revision 11085)
+++ trunk/test/unit/org/openstreetmap/josm/gui/MapStatusTest.java	(revision 11085)
@@ -0,0 +1,30 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import nl.jqno.equalsverifier.EqualsVerifier;
+
+/**
+ * Test {@link MapStatus}
+ */
+public class MapStatusTest {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Unit test of methods {@link MapStatus.StatusTextHistory#equals} and {@link MapStatus.StatusTextHistory#hashCode}.
+     */
+    @Test
+    public void testEqualsContract() {
+        EqualsVerifier.forClass(MapStatus.StatusTextHistory.class).withIgnoredFields("text").verify();
+    }
+}
