Index: trunk/test/unit/org/openstreetmap/josm/data/validation/OsmValidatorTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/validation/OsmValidatorTest.java	(revision 15591)
+++ trunk/test/unit/org/openstreetmap/josm/data/validation/OsmValidatorTest.java	(revision 15603)
@@ -3,4 +3,5 @@
 
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertTrue;
 
@@ -8,4 +9,5 @@
 import org.junit.Rule;
 import org.junit.Test;
+import org.openstreetmap.josm.data.validation.tests.Addresses;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
@@ -84,3 +86,22 @@
     }
 
+    /**
+     * Test that tests are really removed, and that core tests cannot be removed
+     */
+    @Test
+    public void testRemoveTests() {
+        org.openstreetmap.josm.data.validation.Test test = new org.openstreetmap.josm.data.validation.Test("test") {
+        };
+        assertNotEquals(org.openstreetmap.josm.data.validation.Test.class, test.getClass());
+        OsmValidator.addTest(test.getClass());
+        assertTrue(OsmValidator.getAllAvailableTestClasses().contains(test.getClass()));
+        assertTrue(OsmValidator.removeTest(test.getClass()));
+        assertFalse(OsmValidator.removeTest(test.getClass()));
+        assertFalse(OsmValidator.getAllAvailableTestClasses().contains(test.getClass()));
+
+        assertTrue(OsmValidator.getAllAvailableTestClasses().contains(Addresses.class));
+        assertFalse(OsmValidator.removeTest(Addresses.class));
+        assertTrue(OsmValidator.getAllAvailableTestClasses().contains(Addresses.class));
+    }
+
 }
