Index: /trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java	(revision 18580)
+++ /trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java	(revision 18581)
@@ -10,4 +10,5 @@
 import java.util.Collections;
 import java.util.LinkedHashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -16,4 +17,5 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
+import java.util.stream.Collectors;
 
 import javax.swing.JOptionPane;
@@ -165,7 +167,18 @@
                                 if (osmTask.isFailed()) {
                                     Object error = osmTask.getErrorObjects().get(0);
-                                    throw error instanceof OsmApiException
-                                        ? (OsmApiException) error
-                                        : new OsmTransferException(String.join(", ", osmTask.getErrorMessages()));
+                                    if (error instanceof OsmApiException) {
+                                        throw (OsmApiException) error;
+                                    }
+                                    List<Throwable> exceptions = osmTask.getErrorObjects().stream()
+                                                    .filter(Throwable.class::isInstance).map(Throwable.class::cast)
+                                                    .collect(Collectors.toList());
+                                    OsmTransferException osmTransferException =
+                                            new OsmTransferException(String.join(", ", osmTask.getErrorMessages()));
+                                    if (!exceptions.isEmpty()) {
+                                        osmTransferException.initCause(exceptions.get(0));
+                                        exceptions.remove(0);
+                                        exceptions.forEach(osmTransferException::addSuppressed);
+                                    }
+                                    throw osmTransferException;
                                 }
                             } catch (InterruptedException | ExecutionException | TimeoutException |
