Index: /applications/editors/josm/plugins/waydownloader/src/org/openstreetmap/josm/plugins/waydownloader/WayDownloaderPlugin.java
===================================================================
--- /applications/editors/josm/plugins/waydownloader/src/org/openstreetmap/josm/plugins/waydownloader/WayDownloaderPlugin.java	(revision 30636)
+++ /applications/editors/josm/plugins/waydownloader/src/org/openstreetmap/josm/plugins/waydownloader/WayDownloaderPlugin.java	(revision 30637)
@@ -28,4 +28,5 @@
 import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor;
+import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.plugins.Plugin;
 import org.openstreetmap.josm.plugins.PluginInformation;
@@ -59,34 +60,4 @@
                     true);
         }
-
-        protected void showWarningMessage(String msg) {
-             if(msg == null) return;
-             JOptionPane.showMessageDialog(
-                    Main.parent,
-                    msg,
-                    tr("Warning"),
-                    JOptionPane.WARNING_MESSAGE
-             );
-        }
-
-        protected void showErrorMessage(String msg) {
-         if(msg == null) return;
-            JOptionPane.showMessageDialog(
-                    Main.parent,
-                    msg,
-                    tr("Error"),
-                    JOptionPane.ERROR_MESSAGE
-            );
-       }
-
-        protected void showInfoMessage(String msg) {
-             if(msg == null) return;
-               JOptionPane.showMessageDialog(
-                    Main.parent,
-                    msg,
-                    tr("Information"),
-                    JOptionPane.INFORMATION_MESSAGE
-               );
-          }
 
         /** Called when the WayDownloadAction action is triggered (e.g. user clicked the menu option) */
@@ -251,6 +222,5 @@
 
         @Override
-        protected void updateEnabledState(
-                Collection<? extends OsmPrimitive> selection) {
+        protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
             // do nothing
         }
@@ -328,3 +298,51 @@
         return false;
     }
+
+    private static void showWarningMessage(final String msg) {
+        if (msg != null) {
+            GuiHelper.runInEDTAndWait(new Runnable() {
+                @Override
+                public void run() {
+                    JOptionPane.showMessageDialog(
+                            Main.parent,
+                            msg,
+                            tr("Warning"),
+                            JOptionPane.WARNING_MESSAGE
+                        );
+                }
+            });
+        }
+    }
+
+    private static void showErrorMessage(final String msg) {
+        if (msg != null) {
+            GuiHelper.runInEDTAndWait(new Runnable() {
+                @Override
+                public void run() {
+                    JOptionPane.showMessageDialog(
+                            Main.parent,
+                            msg,
+                            tr("Error"),
+                            JOptionPane.ERROR_MESSAGE
+                        );
+                }
+            });
+        }
+    }
+
+    private static void showInfoMessage(final String msg) {
+        if (msg != null) {
+            GuiHelper.runInEDTAndWait(new Runnable() {
+                @Override
+                public void run() {
+                    JOptionPane.showMessageDialog(
+                            Main.parent,
+                            msg,
+                            tr("Information"),
+                            JOptionPane.INFORMATION_MESSAGE
+                        );
+                }
+            });
+        }
+    }
 }
