Index: trunk/src/org/openstreetmap/josm/actions/SessionSaveAsAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/SessionSaveAsAction.java	(revision 18131)
+++ trunk/src/org/openstreetmap/josm/actions/SessionSaveAsAction.java	(revision 18133)
@@ -44,4 +44,5 @@
 import org.openstreetmap.josm.io.session.SessionWriter;
 import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.JosmRuntimeException;
 import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.MultiMap;
@@ -210,5 +211,10 @@
 
             for (Layer layer : layers) {
-                SessionLayerExporter exporter = SessionWriter.getSessionLayerExporter(layer);
+                SessionLayerExporter exporter = null;
+                try {
+                    exporter = SessionWriter.getSessionLayerExporter(layer);
+                } catch (IllegalArgumentException | JosmRuntimeException e) {
+                    Logging.error(e);
+                }
                 if (exporter != null) {
                     exporters.put(layer, exporter);
Index: trunk/src/org/openstreetmap/josm/io/session/GpxTracksSessionExporter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/session/GpxTracksSessionExporter.java	(revision 18131)
+++ trunk/src/org/openstreetmap/josm/io/session/GpxTracksSessionExporter.java	(revision 18133)
@@ -27,4 +27,7 @@
     protected GpxTracksSessionExporter(GpxLayer layer, String type) {
         super(layer, type, "0.1", "gpx");
+        if (layer.data == null) {
+            throw new IllegalArgumentException("GPX layer without data: " + layer);
+        }
     }
 
Index: trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java	(revision 18131)
+++ trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java	(revision 18133)
@@ -97,4 +97,5 @@
      * @param layer layer to export
      * @return session layer exporter for the given layer
+     * @throws IllegalArgumentException if layer cannot be exported
      */
     public static SessionLayerExporter getSessionLayerExporter(Layer layer) {
