Index: /trunk/src/org/openstreetmap/josm/gui/io/importexport/GeoJSONExporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/importexport/GeoJSONExporter.java	(revision 12805)
+++ /trunk/src/org/openstreetmap/josm/gui/io/importexport/GeoJSONExporter.java	(revision 12806)
@@ -36,5 +36,5 @@
         if (layer instanceof OsmDataLayer) {
             try (Writer out = Files.newBufferedWriter(file.toPath(), StandardCharsets.UTF_8)) {
-                out.write(new GeoJSONWriter((OsmDataLayer) layer).write());
+                out.write(new GeoJSONWriter(((OsmDataLayer) layer).data).write());
             }
         } else {
Index: /trunk/src/org/openstreetmap/josm/io/GeoJSONWriter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/GeoJSONWriter.java	(revision 12805)
+++ /trunk/src/org/openstreetmap/josm/io/GeoJSONWriter.java	(revision 12806)
@@ -43,5 +43,5 @@
 public class GeoJSONWriter {
 
-    private final OsmDataLayer layer;
+    private final DataSet data;
     private final Projection projection;
     private static final boolean SKIP_EMPTY_NODES = true;
@@ -51,7 +51,18 @@
      * @param layer The OSM data layer to save
      * @since 10852
-     */
+     * @deprecated To be removed end of 2017. Use {@link #GeoJSONWriter(DataSet)} instead
+     */
+    @Deprecated
     public GeoJSONWriter(OsmDataLayer layer) {
-        this.layer = layer;
+        this(layer.data);
+    }
+
+    /**
+     * Constructs a new {@code GeoJSONWriter}.
+     * @param ds The OSM data set to save
+     * @since 12806
+     */
+    public GeoJSONWriter(DataSet ds) {
+        this.data = ds;
         this.projection = ProjectionPreference.wgs84.getProjection();
     }
@@ -79,6 +90,6 @@
                     .add("type", "FeatureCollection")
                     .add("generator", "JOSM");
-            appendLayerBounds(layer.data, object);
-            appendLayerFeatures(layer.data, object);
+            appendLayerBounds(data, object);
+            appendLayerFeatures(data, object);
             writer.writeObject(object.build());
             return stringWriter.toString();
Index: /trunk/test/unit/org/openstreetmap/josm/io/GeoJSONWriterTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/GeoJSONWriterTest.java	(revision 12805)
+++ /trunk/test/unit/org/openstreetmap/josm/io/GeoJSONWriterTest.java	(revision 12806)
@@ -16,5 +16,4 @@
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
-import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 
 /**
@@ -41,6 +40,5 @@
         final DataSet ds = new DataSet();
         ds.addPrimitive(node);
-        final OsmDataLayer layer = new OsmDataLayer(ds, "foo", null);
-        final GeoJSONWriter writer = new GeoJSONWriter(layer);
+        final GeoJSONWriter writer = new GeoJSONWriter(ds);
         assertEquals(("" +
                 "{\n" +
@@ -80,6 +78,5 @@
         way.setNodes(Arrays.asList(n1, n2));
         ds.addPrimitive(way);
-        final OsmDataLayer layer = new OsmDataLayer(ds, "foo", null);
-        final GeoJSONWriter writer = new GeoJSONWriter(layer);
+        final GeoJSONWriter writer = new GeoJSONWriter(ds);
         assertEquals(("" +
                 "{\n" +
@@ -118,6 +115,5 @@
         try (FileInputStream in = new FileInputStream(TestUtils.getTestDataRoot() + "multipolygon.osm")) {
             DataSet ds = OsmReader.parseDataSet(in, null);
-            final OsmDataLayer layer = new OsmDataLayer(ds, "foo", null);
-            final GeoJSONWriter writer = new GeoJSONWriter(layer);
+            final GeoJSONWriter writer = new GeoJSONWriter(ds);
             assertTrue(writer.write().contains("MultiPolygon"));
         }
@@ -132,6 +128,5 @@
         try (FileInputStream in = new FileInputStream("data_nodist/multipolygon.osm")) {
             DataSet ds = OsmReader.parseDataSet(in, null);
-            final OsmDataLayer layer = new OsmDataLayer(ds, "foo", null);
-            final GeoJSONWriter writer = new GeoJSONWriter(layer);
+            final GeoJSONWriter writer = new GeoJSONWriter(ds);
             assertTrue(writer.write().contains("MultiPolygon"));
         }
