Index: /applications/editors/josm/plugins/reverter/src/reverter/RevertChangesetTask.java
===================================================================
--- /applications/editors/josm/plugins/reverter/src/reverter/RevertChangesetTask.java	(revision 31593)
+++ /applications/editors/josm/plugins/reverter/src/reverter/RevertChangesetTask.java	(revision 31594)
@@ -4,4 +4,5 @@
 
 import java.util.List;
+import java.util.concurrent.Callable;
 
 import javax.swing.JOptionPane;
@@ -16,5 +17,4 @@
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.io.OsmTransferException;
-
 import reverter.ChangesetReverter.RevertType;
 
@@ -46,8 +46,14 @@
         if (!rev.hasMissingObjects()) return true;
         if (!downloadConfirmed) {
-            downloadConfirmed = JOptionPane.showConfirmDialog(Main.parent,
-                    tr("This changeset has objects that are not present in current dataset.\n" +
-                            "It is needed to download them before reverting. Do you want to continue?"),
-                    tr("Confirm"), JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION;
+            final Integer selectedOption = GuiHelper.runInEDTAndWaitAndReturn(new Callable<Integer>() {
+                @Override
+                public Integer call() throws Exception {
+                    return JOptionPane.showConfirmDialog(Main.parent,
+                            tr("This changeset has objects that are not present in current dataset.\n" +
+                                    "It is needed to download them before reverting. Do you want to continue?"),
+                            tr("Confirm"), JOptionPane.YES_NO_OPTION);
+                }
+            });
+            downloadConfirmed = selectedOption != null && selectedOption == JOptionPane.YES_OPTION;
             if (!downloadConfirmed) return false;
         }
