Index: /trunk/src/org/openstreetmap/josm/io/session/GpxRoutesSessionExporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/session/GpxRoutesSessionExporter.java	(revision 16865)
+++ /trunk/src/org/openstreetmap/josm/io/session/GpxRoutesSessionExporter.java	(revision 16865)
@@ -0,0 +1,18 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.io.session;
+
+import org.openstreetmap.josm.gui.layer.GpxRouteLayer;
+
+/**
+ * Session exporter for {@link org.openstreetmap.josm.gui.layer.GpxRouteLayer}.
+ */
+public class GpxRoutesSessionExporter extends GpxTracksSessionExporter {
+
+    /**
+     * Constructs a new {@code GpxRoutesSessionExporter}.
+     * @param layer GPX route layer to export
+     */
+    public GpxRoutesSessionExporter(GpxRouteLayer layer) {
+        super(layer.fromLayer, "routes");
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/io/session/GpxRoutesSessionImporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/session/GpxRoutesSessionImporter.java	(revision 16865)
+++ /trunk/src/org/openstreetmap/josm/io/session/GpxRoutesSessionImporter.java	(revision 16865)
@@ -0,0 +1,16 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.io.session;
+
+import org.openstreetmap.josm.gui.io.importexport.GpxImporter;
+import org.openstreetmap.josm.gui.layer.Layer;
+
+/**
+ * Session importer for {@link org.openstreetmap.josm.gui.layer.GpxRouteLayer}.
+ */
+public class GpxRoutesSessionImporter extends GpxTracksSessionImporter {
+
+    @Override
+    protected Layer getLayer(GpxImporter.GpxImporterData importData) {
+        return importData.getGpxRouteLayer();
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/io/session/GpxTracksSessionExporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/session/GpxTracksSessionExporter.java	(revision 16864)
+++ /trunk/src/org/openstreetmap/josm/io/session/GpxTracksSessionExporter.java	(revision 16865)
@@ -22,5 +22,9 @@
      */
     public GpxTracksSessionExporter(GpxLayer layer) { // NO_UCD (test only)
-        super(layer, "tracks", "0.1", "gpx");
+        this(layer, "tracks");
+    }
+
+    protected GpxTracksSessionExporter(GpxLayer layer, String type) {
+        super(layer, type, "0.1", "gpx");
     }
 
Index: /trunk/src/org/openstreetmap/josm/io/session/GpxTracksSessionImporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/session/GpxTracksSessionImporter.java	(revision 16864)
+++ /trunk/src/org/openstreetmap/josm/io/session/GpxTracksSessionImporter.java	(revision 16865)
@@ -56,5 +56,5 @@
 
                 support.addPostLayersTask(importData.getPostLayerTask());
-                return importData.getGpxLayer();
+                return getLayer(importData);
             }
 
@@ -63,3 +63,7 @@
         }
     }
+
+    protected Layer getLayer(GpxImporter.GpxImporterData importData) {
+        return importData.getGpxLayer();
+    }
 }
Index: /trunk/src/org/openstreetmap/josm/io/session/SessionReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/session/SessionReader.java	(revision 16864)
+++ /trunk/src/org/openstreetmap/josm/io/session/SessionReader.java	(revision 16865)
@@ -166,4 +166,5 @@
         registerSessionLayerImporter("imagery", ImagerySessionImporter.class);
         registerSessionLayerImporter("tracks", GpxTracksSessionImporter.class);
+        registerSessionLayerImporter("routes", GpxRoutesSessionImporter.class);
         registerSessionLayerImporter("geoimage", GeoImageSessionImporter.class);
         registerSessionLayerImporter("markers", MarkerSessionImporter.class);
Index: /trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java	(revision 16864)
+++ /trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java	(revision 16865)
@@ -33,4 +33,5 @@
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
+import org.openstreetmap.josm.gui.layer.GpxRouteLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.NoteLayer;
@@ -73,4 +74,5 @@
         registerSessionLayerExporter(WMTSLayer.class, ImagerySessionExporter.class);
         registerSessionLayerExporter(GpxLayer.class, GpxTracksSessionExporter.class);
+        registerSessionLayerExporter(GpxRouteLayer.class, GpxRoutesSessionExporter.class);
         registerSessionLayerExporter(GeoImageLayer.class, GeoImageSessionExporter.class);
         registerSessionLayerExporter(MarkerLayer.class, MarkerSessionExporter.class);
