Index: src/org/openstreetmap/josm/data/validation/OsmValidator.java
===================================================================
--- src/org/openstreetmap/josm/data/validation/OsmValidator.java	(revision 14748)
+++ src/org/openstreetmap/josm/data/validation/OsmValidator.java	(working copy)
@@ -241,6 +241,14 @@
     }
 
     /**
+     * Get the list of all ignored errors
+     * @return The <code>Collection<String></code> of errors that are ignored
+     */
+    public static Collection<String> getIgnoredErrors() {
+        return ignoredErrors;
+    }
+
+    /**
      * Saves the names of the ignored errors to a file
      */
     public static void saveIgnoredErrors() {
Index: src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(revision 14748)
+++ src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(working copy)
@@ -6,8 +6,11 @@
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
+import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
+import java.nio.file.Files;
+import java.nio.file.StandardCopyOption;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Enumeration;
@@ -85,6 +88,8 @@
     private final SideButton fixButton;
     /** The ignore button */
     private final SideButton ignoreButton;
+    /** The reset ignorelist button */
+    private final SideButton resetignorelistButton;
     /** The select button */
     private final SideButton selectButton;
     /** The lookup button */
@@ -177,6 +182,46 @@
         } else {
             ignoreButton = null;
         }
+
+        resetignorelistButton = new SideButton(new AbstractAction() {
+            int reset = 0;
+            {
+                toggle();
+            }
+            public void toggle() {
+                if (OsmValidator.getIgnoredErrors().size() > 0) {
+                    putValue(NAME, tr("Reset Ignore"));
+                    putValue(SHORT_DESCRIPTION, tr("Reset the ignore list"));
+                    new ImageProvider("dialogs", "fix").getResource().attachImageIcon(this, true);
+                    reset = 1;
+                    this.setEnabled(true);
+                } else {
+                    File ignoredErrors = new File(Config.getDirs().getUserDataDirectory(true), "validator");
+                    ignoredErrors = new File(ignoredErrors.getAbsolutePath() + File.separator + "ignorederrors.bak");
+                    if (ignoredErrors.isFile()) {
+                        putValue(NAME, tr("Restore Ignore"));
+                        putValue(SHORT_DESCRIPTION, tr("Restore the ignore list"));
+                        new ImageProvider("dialogs", "copy").getResource().attachImageIcon(this, true);
+                        reset = -1;
+                        this.setEnabled(true);
+                    } else {
+                        this.setEnabled(false);
+                    }
+                }
+            }
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                if (reset == 1) {
+                    resetErrorList();
+                } else if (reset == -1) {
+                    restoreErrorList();
+                } else if (reset == 0) {
+                    // Do nothing
+                }
+                toggle();
+            }
+        });
+        buttons.add(resetignorelistButton);
         createLayout(tree, true, buttons);
     }
 
@@ -285,6 +330,51 @@
     }
 
     /**
+     * Reset the error list by deleting ignorederrors
+     */
+    public void resetErrorList() {
+        OsmValidator.saveIgnoredErrors();
+        File ignoredErrors = new File(Config.getDirs().getUserDataDirectory(true), "validator");
+        ignoredErrors = new File(ignoredErrors.getAbsolutePath() + File.separator + "ignorederrors");
+        if (!ignoredErrors.isFile()) return;
+        File ignoredErrorsBak = new File(ignoredErrors.getAbsolutePath() + ".bak");
+        try {
+            Files.move(ignoredErrors.toPath(), ignoredErrorsBak.toPath(), StandardCopyOption.REPLACE_EXISTING);
+        } catch (IOException e) {
+            System.out.println(tr("We couldn''t save ignorederrors"));
+            ignoredErrors.delete();
+        }
+        OsmValidator.initialize();
+    }
+
+    /**
+     * Restore the error list by copying ignorederrors.bak to ignorederrors
+     */
+    public void restoreErrorList() {
+        OsmValidator.saveIgnoredErrors();
+        File ignoredErrors = new File(Config.getDirs().getUserDataDirectory(true), "validator");
+        ignoredErrors = new File(ignoredErrors.getAbsolutePath() + File.separator + "ignorederrors");
+        if (!ignoredErrors.isFile()) return;
+        File ignoredErrorsBak = new File(ignoredErrors.getAbsolutePath() + ".bak");
+        File ignoredErrorsBak2 = new File(ignoredErrorsBak.getAbsolutePath() + "2");
+        try {
+            Files.move(ignoredErrors.toPath(),
+                    ignoredErrorsBak2.toPath(),
+                    StandardCopyOption.REPLACE_EXISTING);
+            if (ignoredErrorsBak.isFile()) {
+                Files.move(ignoredErrorsBak.toPath(),
+                        ignoredErrors.toPath(), StandardCopyOption.REPLACE_EXISTING);
+            }
+            Files.move(ignoredErrorsBak2.toPath(),
+                    ignoredErrorsBak.toPath(), StandardCopyOption.REPLACE_EXISTING);
+        } catch (IOException e) {
+            System.out.println(tr("We were unable to restore ignorederrors"));
+            e.printStackTrace();
+        }
+        OsmValidator.initialize();
+    }
+
+    /**
      * Sets the selection of the map to the current selected items.
      */
     @SuppressWarnings("unchecked")
