Index: trunk/src/org/openstreetmap/josm/gui/util/GuiHelper.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/util/GuiHelper.java	(revision 10371)
+++ trunk/src/org/openstreetmap/josm/gui/util/GuiHelper.java	(revision 10372)
@@ -62,4 +62,6 @@
 import org.openstreetmap.josm.tools.ImageProvider.ImageSizes;
 import org.openstreetmap.josm.tools.LanguageInfo;
+import org.openstreetmap.josm.tools.bugreport.BugReport;
+import org.openstreetmap.josm.tools.bugreport.ReportedException;
 
 /**
@@ -135,5 +137,5 @@
      * <p>
      * Passes on the exception that was thrown to the thread calling this.
-     * The exception is wrapped in a {@link RuntimeException} if it was a normal {@link Throwable}.
+     * The exception is wrapped using a {@link ReportedException}.
      * @param task The runnable to execute
      * @see SwingUtilities#invokeAndWait
@@ -146,12 +148,6 @@
             try {
                 SwingUtilities.invokeAndWait(task);
-            } catch (InterruptedException e) {
-                Main.error(e);
-            } catch (InvocationTargetException e) {
-                if (e.getCause() instanceof RuntimeException) {
-                    throw (RuntimeException) e.getCause();
-                } else {
-                    throw new RuntimeException("Exception while calling " + task, e.getCause());
-                }
+            } catch (InterruptedException | InvocationTargetException e) {
+                throw BugReport.intercept(e).put("task", task);
             }
         }
