Index: trunk/src/org/openstreetmap/josm/gui/io/importexport/GpxImporter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/importexport/GpxImporter.java	(revision 18421)
+++ trunk/src/org/openstreetmap/josm/gui/io/importexport/GpxImporter.java	(revision 18422)
@@ -17,4 +17,6 @@
 import org.openstreetmap.josm.gui.layer.GpxRouteLayer;
 import org.openstreetmap.josm.gui.layer.ImageryLayer;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.MainLayerManager;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
@@ -140,13 +142,17 @@
         // FIXME: remove UI stuff from the IO subsystem
         GuiHelper.runInEDT(() -> {
+            MainLayerManager manager = MainApplication.getLayerManager();
             if (data.markerLayer != null) {
-                MainApplication.getLayerManager().addLayer(data.markerLayer);
+                manager.addLayer(data.markerLayer);
             }
             if (data.gpxRouteLayer != null) {
-                MainApplication.getLayerManager().addLayer(data.gpxRouteLayer);
+                manager.addLayer(data.gpxRouteLayer);
             }
             if (data.gpxLayer != null) {
-                MainApplication.getLayerManager().addLayer(data.gpxLayer);
-                MainApplication.getLayerManager().setActiveLayer(data.gpxLayer);
+                manager.addLayer(data.gpxLayer);
+                Layer activeLayer = manager.getActiveLayer();
+                if (activeLayer == null || activeLayer instanceof GpxLayer || activeLayer instanceof MarkerLayer) {
+                    manager.setActiveLayer(data.gpxLayer);
+                }
             }
             data.postLayerTask.run();
