Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 12689)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 12691)
@@ -632,4 +632,13 @@
 
     /**
+     * Gets the data set of the active edit layer.
+     * @return That data set, <code>null</code> if there is no edit layer.
+     * @since 12691
+     */
+    public DataSet getEditDataSet() {
+        return null;
+    }
+
+    /**
      * Registers a {@code JosmAction} and its shortcut.
      * @param action action defining its own shortcut
Index: trunk/src/org/openstreetmap/josm/data/UndoRedoHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/UndoRedoHandler.java	(revision 12689)
+++ trunk/src/org/openstreetmap/josm/data/UndoRedoHandler.java	(revision 12691)
@@ -86,5 +86,5 @@
      */
     public synchronized void add(final Command c) {
-        DataSet ds = Optional.ofNullable(c.getAffectedDataSet()).orElseGet(() -> MainApplication.getLayerManager().getEditDataSet());
+        DataSet ds = Optional.ofNullable(c.getAffectedDataSet()).orElseGet(() -> Main.main.getEditDataSet());
         Collection<? extends OsmPrimitive> oldSelection = null;
         if (ds != null) {
@@ -115,5 +115,5 @@
         if (commands.isEmpty())
             return;
-        DataSet ds = MainApplication.getLayerManager().getEditDataSet();
+        DataSet ds = Main.main.getEditDataSet();
         Collection<? extends OsmPrimitive> oldSelection = null;
         if (ds != null) {
@@ -156,5 +156,5 @@
         if (redoCommands.isEmpty())
             return;
-        DataSet ds = MainApplication.getLayerManager().getEditDataSet();
+        DataSet ds = Main.main.getEditDataSet();
         Collection<? extends OsmPrimitive> oldSelection = ds.getSelected();
         for (int i = 0; i < num; ++i) {
Index: trunk/src/org/openstreetmap/josm/data/osm/FilterModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/FilterModel.java	(revision 12689)
+++ trunk/src/org/openstreetmap/josm/data/osm/FilterModel.java	(revision 12691)
@@ -96,5 +96,5 @@
      */
     public void executeFilters() {
-        DataSet ds = MainApplication.getLayerManager().getEditDataSet();
+        DataSet ds = Main.main.getEditDataSet();
         changed = false;
         if (ds == null) {
@@ -145,5 +145,5 @@
      */
     public void executeFilters(Collection<? extends OsmPrimitive> primitives) {
-        DataSet ds = MainApplication.getLayerManager().getEditDataSet();
+        DataSet ds = Main.main.getEditDataSet();
         if (ds == null)
             return;
@@ -207,5 +207,5 @@
      */
     public void clearFilterFlags() {
-        DataSet ds = MainApplication.getLayerManager().getEditDataSet();
+        DataSet ds = Main.main.getEditDataSet();
         if (ds != null) {
             FilterWorker.clearFilterFlags(ds.allPrimitives());
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/UnconnectedWays.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/UnconnectedWays.java	(revision 12689)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/UnconnectedWays.java	(revision 12691)
@@ -32,5 +32,4 @@
 import org.openstreetmap.josm.data.validation.Test;
 import org.openstreetmap.josm.data.validation.TestError;
-import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.tools.Logging;
@@ -169,5 +168,5 @@
         mindist = Main.pref.getDouble(PREFIX + ".node_way_distance", 10.0);
         minmiddledist = Main.pref.getDouble(PREFIX + ".way_way_distance", 0.0);
-        DataSet dataSet = MainApplication.getLayerManager().getEditDataSet();
+        DataSet dataSet = Main.main.getEditDataSet();
         dsArea = dataSet == null ? null : dataSet.getDataSourceArea();
     }
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/UntaggedWay.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/UntaggedWay.java	(revision 12689)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/UntaggedWay.java	(revision 12691)
@@ -9,4 +9,5 @@
 import java.util.Set;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -18,5 +19,4 @@
 import org.openstreetmap.josm.data.validation.Test;
 import org.openstreetmap.josm.data.validation.TestError;
-import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 
@@ -142,5 +142,5 @@
     public void startTest(ProgressMonitor monitor) {
         super.startTest(monitor);
-        DataSet ds = MainApplication.getLayerManager().getEditDataSet();
+        DataSet ds = Main.main.getEditDataSet();
         if (ds == null)
             return;
Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 12689)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 12691)
@@ -397,4 +397,9 @@
     }
 
+    @Override
+    public DataSet getEditDataSet() {
+        return getLayerManager().getEditDataSet();
+    }
+
     /**
      * Returns the command-line arguments used to run the application.
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java	(revision 12689)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java	(revision 12691)
@@ -382,7 +382,7 @@
             return;
         }
-        DataSet ds = MainApplication.getLayerManager().getEditDataSet();
+        DataSet ds = Main.main.getEditDataSet();
         Collection<OsmPrimitive> participants = Collections.emptyList();
-        if (Main.main != null && ds != null) {
+        if (ds != null) {
             participants = ds.getSelected();
         }
@@ -556,5 +556,5 @@
 
     protected final void updateEnabledState() {
-        setEnabled(Main.main != null && MainApplication.getLayerManager().getEditDataSet() != null);
+        setEnabled(Main.main != null && Main.main.getEditDataSet() != null);
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchPrimitiveDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchPrimitiveDialog.java	(revision 12689)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchPrimitiveDialog.java	(revision 12691)
@@ -87,6 +87,6 @@
             TaggingPreset preset = selector.getSelectedPresetAndUpdateClassification();
             if (preset != null) {
-                final Set<OsmPrimitive> matching = new HashSet<>(MainApplication.getLayerManager().getEditDataSet().getPrimitives(preset));
-                MainApplication.getLayerManager().getEditDataSet().setSelected(matching);
+                final Set<OsmPrimitive> matching = new HashSet<>(Main.main.getEditDataSet().getPrimitives(preset));
+                Main.main.getEditDataSet().setSelected(matching);
             }
         }
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelector.java	(revision 12689)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelector.java	(revision 12691)
@@ -236,5 +236,5 @@
         boolean inTags = ckSearchInTags != null && ckSearchInTags.isSelected();
 
-        DataSet ds = MainApplication.getLayerManager().getEditDataSet();
+        DataSet ds = Main.main.getEditDataSet();
         Collection<OsmPrimitive> selected = (ds == null) ? Collections.<OsmPrimitive>emptyList() : ds.getSelected();
         final List<PresetClassification> result = classifications.getMatchingPresets(
@@ -356,6 +356,6 @@
                 typesInSelectionDirty = false;
                 typesInSelection.clear();
-                if (Main.main == null || MainApplication.getLayerManager().getEditDataSet() == null) return typesInSelection;
-                for (OsmPrimitive primitive : MainApplication.getLayerManager().getEditDataSet().getSelected()) {
+                if (Main.main == null || Main.main.getEditDataSet() == null) return typesInSelection;
+                for (OsmPrimitive primitive : Main.main.getEditDataSet().getSelected()) {
                     typesInSelection.add(TaggingPresetType.forPrimitive(primitive));
                 }
