Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowser.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowser.java	(revision 17201)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowser.java	(revision 17202)
@@ -47,5 +47,4 @@
 import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
 import org.openstreetmap.josm.io.MultiFetchServerObjectReader;
-import org.openstreetmap.josm.io.OsmApi;
 import org.openstreetmap.josm.io.OsmTransferException;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
@@ -324,4 +323,5 @@
         protected int conflictsCount;
         protected Exception lastException;
+        protected MultiFetchServerObjectReader reader;
 
         DownloadTask(String title, Dialog parent) {
@@ -332,5 +332,9 @@
         protected void cancel() {
             canceled = true;
-            OsmApi.getOsmApi().cancel();
+            synchronized (this) {
+                if (reader != null) {
+                    reader.cancel();
+                }
+            }
         }
 
@@ -423,6 +427,6 @@
         protected void realRun() throws SAXException, IOException, OsmTransferException {
             try {
-                MultiFetchServerObjectReader reader = createReader();
-                reader.append(relation.getMemberPrimitives());
+                reader = createReader();
+                reader.append(relation.getMemberPrimitives(Relation.class));
                 DataSet dataSet = reader.parseOsm(progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false));
                 mergeDataSet(dataSet);
@@ -456,5 +460,5 @@
         protected void realRun() throws SAXException, IOException, OsmTransferException {
             try {
-                MultiFetchServerObjectReader reader = createReader();
+                reader = createReader();
                 reader.append(relations);
                 DataSet dataSet = reader.parseOsm(progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false));
