Index: trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 10413)
@@ -76,5 +76,5 @@
         if (Main.main == null || !Main.main.hasEditLayer())
             return;
-        Collection<OsmPrimitive> sel = Main.main.getEditLayer().data.getSelected();
+        Collection<OsmPrimitive> sel = Main.getLayerManager().getEditLayer().data.getSelected();
         if (sel.isEmpty()) {
             JOptionPane.showMessageDialog(
@@ -220,5 +220,5 @@
      */
     protected Layer getFirstSelectedLayer() {
-        if (Main.main.getActiveLayer() == null) {
+        if (Main.getLayerManager().getActiveLayer() == null) {
             return null;
         }
Index: trunk/src/org/openstreetmap/josm/actions/CreateMultipolygonAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/CreateMultipolygonAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/CreateMultipolygonAction.java	(revision 10413)
@@ -119,10 +119,10 @@
                             if (Main.pref.getBoolean("multipoly.show-relation-editor", false)) {
                                 //Open relation edit window, if set up in preferences
-                                RelationEditor editor = RelationEditor.getEditor(Main.main.getEditLayer(), relation, null);
+                                RelationEditor editor = RelationEditor.getEditor(Main.getLayerManager().getEditLayer(), relation, null);
 
                                 editor.setModal(true);
                                 editor.setVisible(true);
                             } else {
-                                Main.main.getEditLayer().setRecentRelation(relation);
+                                Main.getLayerManager().getEditLayer().setRecentRelation(relation);
                             }
                         }
@@ -165,9 +165,9 @@
         if (multipolygonRelation != null) {
             if (!multipolygonRelation.isNew() && multipolygonRelation.isIncomplete()) {
-                Main.worker.submit(new DownloadRelationTask(Collections.singleton(multipolygonRelation), Main.main.getEditLayer()));
+                Main.worker.submit(new DownloadRelationTask(Collections.singleton(multipolygonRelation), Main.getLayerManager().getEditLayer()));
             } else if (multipolygonRelation.hasIncompleteMembers()) {
                 Main.worker.submit(new DownloadRelationMemberTask(multipolygonRelation,
                         DownloadSelectedIncompleteMembersAction.buildSetOfIncompleteMembers(Collections.singleton(multipolygonRelation)),
-                        Main.main.getEditLayer()));
+                        Main.getLayerManager().getEditLayer()));
             }
         }
Index: trunk/src/org/openstreetmap/josm/actions/DeleteLayerAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/DeleteLayerAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/DeleteLayerAction.java	(revision 10413)
@@ -30,5 +30,5 @@
     @Override
     public void actionPerformed(ActionEvent e) {
-        Layer activeLayer = Main.main.getActiveLayer();
+        Layer activeLayer = Main.getLayerManager().getActiveLayer();
         if (activeLayer == null) {
             return;
Index: trunk/src/org/openstreetmap/josm/actions/DownloadReferrersAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/DownloadReferrersAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/DownloadReferrersAction.java	(revision 10413)
@@ -52,5 +52,5 @@
         if (!isEnabled())
             return;
-        OsmDataLayer layer = Main.main.getEditLayer();
+        OsmDataLayer layer = Main.getLayerManager().getEditLayer();
         if (layer == null)
             return;
Index: trunk/src/org/openstreetmap/josm/actions/FollowLineAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/FollowLineAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/FollowLineAction.java	(revision 10413)
@@ -60,5 +60,5 @@
     @Override
     public void actionPerformed(ActionEvent evt) {
-        OsmDataLayer osmLayer = Main.main.getEditLayer();
+        OsmDataLayer osmLayer = Main.getLayerManager().getEditLayer();
         if (osmLayer == null)
             return;
Index: trunk/src/org/openstreetmap/josm/actions/InfoAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/InfoAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/InfoAction.java	(revision 10413)
@@ -37,5 +37,5 @@
         DataSet set = getLayerManager().getEditDataSet();
         if (set != null) {
-            new InspectPrimitiveDialog(set.getAllSelected(), Main.main.getEditLayer()).showDialog();
+            new InspectPrimitiveDialog(set.getAllSelected(), Main.getLayerManager().getEditLayer()).showDialog();
         }
     }
Index: trunk/src/org/openstreetmap/josm/actions/JoinAreasAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/JoinAreasAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/JoinAreasAction.java	(revision 10413)
@@ -636,5 +636,5 @@
         // Delete the discarded inner ways
         if (!discardedWays.isEmpty()) {
-            Command deleteCmd = DeleteCommand.delete(Main.main.getEditLayer(), discardedWays, true);
+            Command deleteCmd = DeleteCommand.delete(Main.getLayerManager().getEditLayer(), discardedWays, true);
             if (deleteCmd != null) {
                 cmds.add(deleteCmd);
Index: trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java	(revision 10413)
@@ -115,5 +115,5 @@
 
     protected Layer getSourceLayer() {
-        return Main.map != null ? Main.main.getActiveLayer() : null;
+        return Main.map != null ? Main.getLayerManager().getActiveLayer() : null;
     }
 
Index: trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 10413)
@@ -87,8 +87,8 @@
         Node targetNode = selectTargetNode(selectedNodes);
         Node targetLocationNode = selectTargetLocationNode(selectedNodes);
-        Command cmd = mergeNodes(Main.main.getEditLayer(), selectedNodes, targetNode, targetLocationNode);
+        Command cmd = mergeNodes(Main.getLayerManager().getEditLayer(), selectedNodes, targetNode, targetLocationNode);
         if (cmd != null) {
             Main.main.undoRedo.add(cmd);
-            Main.main.getEditLayer().data.setSelected(targetNode);
+            Main.getLayerManager().getEditLayer().data.setSelected(targetNode);
         }
     }
Index: trunk/src/org/openstreetmap/josm/actions/PasteAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/PasteAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/PasteAction.java	(revision 10413)
@@ -145,5 +145,5 @@
             if (data instanceof NodeData) {
                 NodeData nodeData = (NodeData) data;
-                if (Main.main.getEditLayer() == source) {
+                if (Main.getLayerManager().getEditLayer() == source) {
                     nodeData.setEastNorth(nodeData.getEastNorth().add(offsetEast, offsetNorth));
                 }
Index: trunk/src/org/openstreetmap/josm/actions/PurgeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/PurgeAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/PurgeAction.java	(revision 10413)
@@ -96,5 +96,5 @@
 
         Collection<OsmPrimitive> sel = getLayerManager().getEditDataSet().getAllSelected();
-        layer = Main.main.getEditLayer();
+        layer = Main.getLayerManager().getEditLayer();
 
         toPurge = new HashSet<>(sel);
@@ -218,5 +218,5 @@
         }
 
-        Main.main.undoRedo.add(new PurgeCommand(Main.main.getEditLayer(), toPurgeChecked, makeIncomplete));
+        Main.main.undoRedo.add(new PurgeCommand(Main.getLayerManager().getEditLayer(), toPurgeChecked, makeIncomplete));
 
         if (clearUndoRedo) {
Index: trunk/src/org/openstreetmap/josm/actions/UpdateSelectionAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/UpdateSelectionAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/UpdateSelectionAction.java	(revision 10413)
@@ -44,5 +44,5 @@
         try {
             DataSet ds = reader.parseOsm(NullProgressMonitor.INSTANCE);
-            Main.main.getEditLayer().mergeFrom(ds);
+            Main.getLayerManager().getEditLayer().mergeFrom(ds);
         } catch (OsmTransferException e) {
             ExceptionDialogUtil.explainException(e);
@@ -58,5 +58,5 @@
      */
     public static void updatePrimitives(final Collection<OsmPrimitive> selection) {
-        UpdatePrimitivesTask task = new UpdatePrimitivesTask(Main.main.getEditLayer(), selection);
+        UpdatePrimitivesTask task = new UpdatePrimitivesTask(Main.getLayerManager().getEditLayer(), selection);
         Main.worker.submit(task);
     }
Index: trunk/src/org/openstreetmap/josm/actions/UploadAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/UploadAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/UploadAction.java	(revision 10413)
@@ -269,5 +269,5 @@
         }
         APIDataSet apiData = new APIDataSet(Main.main.getCurrentDataSet());
-        uploadData(Main.main.getEditLayer(), apiData);
+        uploadData(Main.getLayerManager().getEditLayer(), apiData);
     }
 }
Index: trunk/src/org/openstreetmap/josm/actions/ZoomToAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/ZoomToAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/ZoomToAction.java	(revision 10413)
@@ -82,5 +82,5 @@
 
     protected final void updateEnabledState() {
-        if (Main.main == null || Main.main.getEditLayer() != this.table.getLayer()) {
+        if (Main.main == null || Main.getLayerManager().getEditLayer() != this.table.getLayer()) {
             setEnabled(false);
             putValue(SHORT_DESCRIPTION, descriptionInactiveLayer);
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 10413)
@@ -214,5 +214,5 @@
         protected OsmDataLayer getEditLayer() {
             if (!Main.isDisplayingMapView()) return null;
-            return Main.main.getEditLayer();
+            return Main.getLayerManager().getEditLayer();
         }
 
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadTaskList.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadTaskList.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadTaskList.java	(revision 10413)
@@ -297,5 +297,5 @@
                 }
             }
-            final OsmDataLayer editLayer = Main.main.getEditLayer();
+            final OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
             if (editLayer != null && osmData) {
                 final Set<OsmPrimitive> myPrimitives = getCompletePrimitives(editLayer.data);
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 10413)
@@ -708,5 +708,5 @@
         Node targetNode = MergeNodesAction.selectTargetNode(changedNodes);
         Node locNode = MergeNodesAction.selectTargetLocationNode(changedNodes);
-        Command mergeCmd = MergeNodesAction.mergeNodes(Main.main.getEditLayer(), changedNodes, targetNode, locNode);
+        Command mergeCmd = MergeNodesAction.mergeNodes(Main.getLayerManager().getEditLayer(), changedNodes, targetNode, locNode);
         if (mergeCmd != null) {
             Main.main.undoRedo.add(mergeCmd);
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 10413)
@@ -920,5 +920,5 @@
         Collection<Node> nodesToMerge = new LinkedList<>(selNodes);
         nodesToMerge.add(target);
-        mergeNodes(Main.main.getEditLayer(), nodesToMerge, target);
+        mergeNodes(Main.getLayerManager().getEditLayer(), nodesToMerge, target);
     }
 
Index: trunk/src/org/openstreetmap/josm/actions/relation/DeleteRelationsAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/relation/DeleteRelationsAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/relation/DeleteRelationsAction.java	(revision 10413)
@@ -30,5 +30,5 @@
         if (toDelete == null)
             return;
-        DeleteAction.deleteRelations(Main.main.getEditLayer(), toDelete);
+        DeleteAction.deleteRelations(Main.getLayerManager().getEditLayer(), toDelete);
         // clear selection after deletion
         if (Main.map.relationListDialog != null)
Index: trunk/src/org/openstreetmap/josm/actions/relation/DownloadMembersAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/relation/DownloadMembersAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/relation/DownloadMembersAction.java	(revision 10413)
@@ -36,5 +36,5 @@
     public void actionPerformed(ActionEvent e) {
         if (!isEnabled() || relations.isEmpty() || !Main.isDisplayingMapView()) return;
-        Main.worker.submit(new DownloadRelationTask(relations, Main.main.getEditLayer()));
+        Main.worker.submit(new DownloadRelationTask(relations, Main.getLayerManager().getEditLayer()));
     }
 
Index: trunk/src/org/openstreetmap/josm/actions/relation/DownloadSelectedIncompleteMembersAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/relation/DownloadSelectedIncompleteMembersAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/relation/DownloadSelectedIncompleteMembersAction.java	(revision 10413)
@@ -59,5 +59,5 @@
                 relations,
                 incompleteMembers,
-                Main.main.getEditLayer()));
+                Main.getLayerManager().getEditLayer()));
     }
 
Index: trunk/src/org/openstreetmap/josm/actions/relation/DuplicateRelationAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/relation/DuplicateRelationAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/relation/DuplicateRelationAction.java	(revision 10413)
@@ -34,5 +34,5 @@
         copy.setModified(true);
         RelationEditor editor = RelationEditor.getEditor(
-                Main.main.getEditLayer(),
+                Main.getLayerManager().getEditLayer(),
                 copy,
                 null /* no selected members */
Index: trunk/src/org/openstreetmap/josm/actions/relation/EditRelationAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/relation/EditRelationAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/relation/EditRelationAction.java	(revision 10413)
@@ -43,5 +43,5 @@
         Set<RelationMember> members = new HashSet<>();
         if (Main.isDisplayingMapView()) {
-            OsmDataLayer editLayer = Main.main.getEditLayer();
+            OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
             if (editLayer != null && editLayer.data != null) {
                 Collection<OsmPrimitive> selection = editLayer.data.getSelected();
@@ -62,5 +62,5 @@
     public static void launchEditor(Relation toEdit) {
         if (toEdit == null || toEdit.isDeleted() || !Main.isDisplayingMapView()) return;
-        RelationEditor.getEditor(Main.main.getEditLayer(), toEdit,
+        RelationEditor.getEditor(Main.getLayerManager().getEditLayer(), toEdit,
                 getMembersForCurrentSelection(toEdit)).setVisible(true);
     }
Index: trunk/src/org/openstreetmap/josm/actions/relation/RecentRelationsAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/relation/RecentRelationsAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/relation/RecentRelationsAction.java	(revision 10413)
@@ -140,5 +140,5 @@
         if (!Main.isDisplayingMapView())
             return Collections.emptyList();
-        Layer activeLayer = Main.main.getActiveLayer();
+        Layer activeLayer = Main.getLayerManager().getActiveLayer();
         if (!(activeLayer instanceof OsmDataLayer)) {
             return Collections.emptyList();
Index: trunk/src/org/openstreetmap/josm/actions/relation/SelectMembersAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/relation/SelectMembersAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/relation/SelectMembersAction.java	(revision 10413)
@@ -43,7 +43,7 @@
         }
         if (add) {
-            Main.main.getEditLayer().data.addSelected(members);
+            Main.getLayerManager().getEditLayer().data.addSelected(members);
         } else {
-            Main.main.getEditLayer().data.setSelected(members);
+            Main.getLayerManager().getEditLayer().data.setSelected(members);
         }
     }
Index: trunk/src/org/openstreetmap/josm/actions/relation/SelectRelationAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/relation/SelectRelationAction.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/actions/relation/SelectRelationAction.java	(revision 10413)
@@ -34,5 +34,5 @@
     public void actionPerformed(ActionEvent e) {
         if (!isEnabled() || relations.isEmpty()) return;
-        OsmDataLayer editLayer = Main.main.getEditLayer();
+        OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
         if (editLayer == null || editLayer.data == null) return;
         if (add) {
Index: trunk/src/org/openstreetmap/josm/command/Command.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/Command.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/command/Command.java	(revision 10413)
@@ -131,5 +131,5 @@
      */
     public Command() {
-        this.layer = Main.main == null ? null : Main.main.getEditLayer();
+        this.layer = Main.getLayerManager().getEditLayer();
     }
 
Index: trunk/src/org/openstreetmap/josm/command/conflict/RelationMemberConflictResolverCommand.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/conflict/RelationMemberConflictResolverCommand.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/command/conflict/RelationMemberConflictResolverCommand.java	(revision 10413)
@@ -84,5 +84,5 @@
 
         Main.getLayerManager().setActiveLayer(layer);
-        OsmDataLayer editLayer = Main.main.getEditLayer();
+        OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
 
         // restore the former state
Index: trunk/src/org/openstreetmap/josm/data/validation/Test.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/Test.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/data/validation/Test.java	(revision 10413)
@@ -333,5 +333,5 @@
         }
         if (!primitivesToDelete.isEmpty()) {
-            return DeleteCommand.delete(Main.main.getEditLayer(), primitivesToDelete);
+            return DeleteCommand.delete(Main.getLayerManager().getEditLayer(), primitivesToDelete);
         } else {
             return null;
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java	(revision 10413)
@@ -409,5 +409,5 @@
 
             if (DeleteCommand.checkAndConfirmOutlyingDelete(nodes, Collections.singleton(target)))
-                return MergeNodesAction.mergeNodes(Main.main.getEditLayer(), nodes, target);
+                return MergeNodesAction.mergeNodes(Main.getLayerManager().getEditLayer(), nodes, target);
         }
 
Index: trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolver.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolver.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolver.java	(revision 10413)
@@ -196,5 +196,5 @@
     public void prepareForEditing() {
         AutoCompletionList acList = new AutoCompletionList();
-        Main.main.getEditLayer().data.getAutoCompletionManager().populateWithMemberRoles(acList);
+        Main.getLayerManager().getEditLayer().data.getAutoCompletionManager().populateWithMemberRoles(acList);
         tfRole.setAutoCompletionList(acList);
         AutoCompletingTextField editor = (AutoCompletingTextField) tblResolver.getColumnModel().getColumn(2).getCellEditor();
@@ -203,5 +203,5 @@
         }
         AutoCompletionList acList2 = new AutoCompletionList();
-        Main.main.getEditLayer().data.getAutoCompletionManager().populateWithKeys(acList2);
+        Main.getLayerManager().getEditLayer().data.getAutoCompletionManager().populateWithKeys(acList2);
         tfKey.setAutoCompletionList(acList2);
     }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java	(revision 10413)
@@ -121,5 +121,5 @@
         ChangesetCache.getInstance().addChangesetCacheListener(inActiveDataLayerModel);
         Main.getLayerManager().addActiveLayerChangeListener(inActiveDataLayerModel);
-        OsmDataLayer editLayer = Main.main.getEditLayer();
+        OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
         if (editLayer != null) {
             editLayer.data.addDataSetListener(inActiveDataLayerModel);
@@ -134,5 +134,5 @@
         ChangesetCache.getInstance().removeChangesetCacheListener(inActiveDataLayerModel);
         Main.getLayerManager().removeActiveLayerChangeListener(inActiveDataLayerModel);
-        OsmDataLayer editLayer = Main.main.getEditLayer();
+        OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
         if (editLayer != null) {
             editLayer.data.removeDataSetListener(inActiveDataLayerModel);
@@ -237,5 +237,5 @@
 
     protected void initWithCurrentData() {
-        OsmDataLayer editLayer = Main.main.getEditLayer();
+        OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
         if (editLayer != null) {
             inSelectionModel.initFromPrimitives(editLayer.data.getAllSelected());
@@ -323,5 +323,5 @@
                 return;
 
-            DataSet ds = Main.main.getEditLayer().data;
+            DataSet ds = Main.getLayerManager().getEditLayer().data;
             selectObjectsByChangesetIds(ds, sel);
         }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(revision 10413)
@@ -345,5 +345,5 @@
     protected static FilteredCollection<? extends OsmPrimitive> getAffectedPrimitives(TreePath path) {
         PseudoCommand c = ((CommandListMutableTreeNode) path.getLastPathComponent()).getCommand();
-        final OsmDataLayer currentLayer = Main.main.getEditLayer();
+        final OsmDataLayer currentLayer = Main.getLayerManager().getEditLayer();
         return new FilteredCollection<>(
                 c.getParticipatingPrimitives(),
@@ -389,5 +389,5 @@
                 throw new IllegalStateException();
 
-            OsmDataLayer editLayer = Main.main.getEditLayer();
+            OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
             if (editLayer == null) return;
             editLayer.data.setSelected(getAffectedPrimitives(path));
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 10413)
@@ -234,5 +234,5 @@
      */
     public void refreshView() {
-        OsmDataLayer editLayer = Main.main.getEditLayer();
+        OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
         conflicts = editLayer == null ? new ConflictCollection() : editLayer.getConflicts();
         GuiHelper.runInEDT(new Runnable() {
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 10413)
@@ -362,5 +362,5 @@
 
         public void run() {
-            RelationEditor.getEditor(Main.main.getEditLayer(), null, null).setVisible(true);
+            RelationEditor.getEditor(Main.getLayerManager().getEditLayer(), null, null).setVisible(true);
         }
 
@@ -694,5 +694,5 @@
     @Override
     public void dataChanged(DataChangedEvent event) {
-        initFromLayer(Main.main.getEditLayer());
+        initFromLayer(Main.getLayerManager().getEditLayer());
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 10413)
@@ -212,5 +212,5 @@
             if (idx < 0) return;
             if (isDoubleClick(e)) {
-                OsmDataLayer layer = Main.main.getEditLayer();
+                OsmDataLayer layer = Main.getLayerManager().getEditLayer();
                 if (layer == null) return;
                 OsmPrimitive osm = model.getElementAt(idx);
@@ -335,5 +335,5 @@
             Collection<OsmPrimitive> sel = model.getSelected();
             if (sel.isEmpty()) return;
-            OsmDataLayer editLayer = Main.main.getEditLayer();
+            OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
             if (editLayer == null) return;
             editLayer.data.setSelected(sel);
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java	(revision 10413)
@@ -144,5 +144,5 @@
     public void showDialog() {
         super.showDialog();
-        Layer layer = Main.main.getActiveLayer();
+        Layer layer = Main.getLayerManager().getActiveLayer();
         if (layer instanceof OsmDataLayer) {
             refresh(((OsmDataLayer) layer).data.getAllSelected());
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java	(revision 10413)
@@ -198,5 +198,5 @@
                         + "edit layer ''{0}''.</html>",
                         primitives.size(),
-                        Main.main.getEditLayer().getName()
+                        Main.getLayerManager().getEditLayer().getName()
                 ),
                 title, JOptionPane.WARNING_MESSAGE, helpTopic
@@ -336,5 +336,5 @@
                 return null;
             }
-            OsmDataLayer layer = Main.main.getEditLayer();
+            OsmDataLayer layer = Main.getLayerManager().getEditLayer();
             Set<OsmPrimitive> target = new HashSet<>();
             for (HistoryOsmPrimitive p : model.getSelectedPrimitives()) {
@@ -386,5 +386,5 @@
                 return;
             }
-            Main.main.getEditLayer().data.setSelected(target);
+            Main.getLayerManager().getEditLayer().data.setSelected(target);
         }
     }
@@ -409,5 +409,5 @@
                 return;
             }
-            Main.main.getEditLayer().data.setSelected(target);
+            Main.getLayerManager().getEditLayer().data.setSelected(target);
             AutoScaleAction.zoomToSelection();
         }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDetailPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDetailPanel.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDetailPanel.java	(revision 10413)
@@ -335,5 +335,5 @@
                             + "edit layer ''{1}''.</html>",
                             currentChangeset.getId(),
-                            Main.main.getEditLayer().getName()
+                            Main.getLayerManager().getEditLayer().getName()
                     ),
                     tr("Nothing to select"),
@@ -348,5 +348,5 @@
                 return;
             if (Main.main == null || !Main.main.hasEditLayer()) return;
-            OsmDataLayer layer = Main.main.getEditLayer();
+            OsmDataLayer layer = Main.getLayerManager().getEditLayer();
             Set<OsmPrimitive> target = new HashSet<>();
             for (OsmPrimitive p: layer.data.allPrimitives()) {
@@ -396,5 +396,5 @@
                             + "edit layer ''{1}''.</html>",
                             currentChangeset.getId(),
-                            Main.main.getEditLayer().getName()
+                            Main.getLayerManager().getEditLayer().getName()
                     ),
                     tr("Nothing to zoom to"),
@@ -409,5 +409,5 @@
                 return;
             if (Main.main == null || !Main.main.hasEditLayer()) return;
-            OsmDataLayer layer = Main.main.getEditLayer();
+            OsmDataLayer layer = Main.getLayerManager().getEditLayer();
             Set<OsmPrimitive> target = new HashSet<>();
             for (OsmPrimitive p: layer.data.allPrimitives()) {
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 10413)
@@ -563,5 +563,5 @@
         Main.map.relationListDialog.selectRelation(relation);
         RelationEditor.getEditor(
-                Main.main.getEditLayer(),
+                Main.getLayerManager().getEditLayer(),
                 relation,
                 ((MemberInfo) membershipData.getValueAt(row, 1)).role
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 10413)
@@ -419,5 +419,5 @@
             mainPanel.add(p, BorderLayout.CENTER);
 
-            AutoCompletionManager autocomplete = Main.main.getEditLayer().data.getAutoCompletionManager();
+            AutoCompletionManager autocomplete = Main.getLayerManager().getEditLayer().data.getAutoCompletionManager();
             List<AutoCompletionListItem> keyList = autocomplete.getKeys();
             Collections.sort(keyList, defaultACItemComparator);
@@ -676,5 +676,5 @@
                 +"<br><br>"+tr("Please select a key")), GBC.eol().fill(GBC.HORIZONTAL));
 
-            AutoCompletionManager autocomplete = Main.main.getEditLayer().data.getAutoCompletionManager();
+            AutoCompletionManager autocomplete = Main.getLayerManager().getEditLayer().data.getAutoCompletionManager();
             List<AutoCompletionListItem> keyList = autocomplete.getKeys();
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java	(revision 10413)
@@ -235,5 +235,5 @@
         private void updateEnabledState() {
             setEnabled(Main.main != null
-                    && Main.main.getEditLayer() == getLayer()
+                    && Main.getLayerManager().getEditLayer() == getLayer()
                     && getSelectedRowCount() == 1
                     && hasGap());
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(revision 10413)
@@ -108,5 +108,5 @@
     @Override
     public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
-        if (Main.main.getEditLayer() != this.layer) return;
+        if (Main.getLayerManager().getEditLayer() != this.layer) return;
         // just trigger a repaint
         Collection<RelationMember> sel = getSelectedMembers();
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ParentRelationLoadingTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ParentRelationLoadingTask.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ParentRelationLoadingTask.java	(revision 10413)
@@ -31,5 +31,5 @@
  *  final ParentRelationLoadingTask task = new ParentRelationLoadingTask(
  *                   child,   // the child relation
- *                   Main.main.getEditLayer(), // the edit layer
+ *                   Main.getLayerManager().getEditLayer(), // the edit layer
  *                   true,  // load fully
  *                   new PleaseWaitProgressMonitor()  // a progress monitor
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/RelationTree.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/RelationTree.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/RelationTree.java	(revision 10413)
@@ -135,8 +135,8 @@
                 return;
             }
-            DataSetMerger visitor = new DataSetMerger(Main.main.getEditLayer().data, ds);
+            DataSetMerger visitor = new DataSetMerger(Main.getLayerManager().getEditLayer().data, ds);
             visitor.merge();
             if (!visitor.getConflicts().isEmpty()) {
-                Main.main.getEditLayer().getConflicts().add(visitor.getConflicts());
+                Main.getLayerManager().getEditLayer().getConflicts().add(visitor.getConflicts());
             }
             final RelationTreeModel model = (RelationTreeModel) getModel();
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableModel.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableModel.java	(revision 10413)
@@ -62,5 +62,5 @@
     @Override
     public int getRowCount() {
-        if (Main.main.getEditLayer() != layer)
+        if (Main.getLayerManager().getEditLayer() != layer)
             return 0;
         return cache.size();
@@ -104,5 +104,5 @@
     @Override
     public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
-        if (layer == Main.main.getEditLayer()) {
+        if (layer == Main.getLayerManager().getEditLayer()) {
             cache.clear();
             cache.addAll(newSelection);
Index: trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java	(revision 10413)
@@ -106,5 +106,5 @@
 
         if (Main.main != null) {
-            OsmDataLayer editLayer = Main.main.getEditLayer();
+            OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
             if (editLayer != null) {
                 editLayer.data.addDataSetListener(this);
@@ -174,5 +174,5 @@
         if (history.getNumVersions() > 0) {
             HistoryOsmPrimitive newLatest = null;
-            OsmDataLayer editLayer = Main.main.getEditLayer();
+            OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
             if (editLayer != null) {
                 OsmPrimitive p = editLayer.data.getPrimitiveById(history.getId(), history.getType());
@@ -532,5 +532,5 @@
             if (latest == null)
                 return null;
-            OsmDataLayer editLayer = Main.main.getEditLayer();
+            OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
             if (editLayer == null)
                 return null;
@@ -666,5 +666,5 @@
      */
     public void unlinkAsListener() {
-        OsmDataLayer editLayer = Main.main.getEditLayer();
+        OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
         if (editLayer != null) {
             editLayer.data.removeDataSetListener(this);
Index: trunk/src/org/openstreetmap/josm/gui/history/NodeListViewer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/NodeListViewer.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/history/NodeListViewer.java	(revision 10413)
@@ -243,5 +243,5 @@
             OsmPrimitive p = getPrimitiveToZoom();
             if (p != null) {
-                OsmDataLayer editLayer = Main.main.getEditLayer();
+                OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
                 if (editLayer != null) {
                     editLayer.data.setSelected(p.getPrimitiveId());
@@ -259,5 +259,5 @@
             if (primitiveId == null)
                 return null;
-            OsmDataLayer editLayer = Main.main.getEditLayer();
+            OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
             if (editLayer == null)
                 return null;
Index: trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java	(revision 10413)
@@ -149,5 +149,5 @@
         String text;
         if (isLatest) {
-            OsmDataLayer editLayer = Main.main.getEditLayer();
+            OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
             text = tr("<html>Version <strong>{0}</strong> currently edited in layer ''{1}''</html>",
                     Long.toString(version),
Index: trunk/src/org/openstreetmap/josm/gui/io/AbstractUploadTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/AbstractUploadTask.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/io/AbstractUploadTask.java	(revision 10413)
@@ -79,5 +79,5 @@
         // FIXME: should now about the layer this task is running for. might
         // be different from the current edit layer
-        OsmDataLayer layer = Main.main.getEditLayer();
+        OsmDataLayer layer = Main.getLayerManager().getEditLayer();
         if (layer == null)
             throw new IllegalStateException(tr("Failed to update primitive with id {0} because current edit layer is null", id));
@@ -268,5 +268,5 @@
         );
         if (ret == 0) {
-            DownloadReferrersAction.downloadReferrers(Main.main.getEditLayer(), Arrays.asList(conflict.a));
+            DownloadReferrersAction.downloadReferrers(Main.getLayerManager().getEditLayer(), Arrays.asList(conflict.a));
         }
     }
Index: trunk/src/org/openstreetmap/josm/gui/io/DownloadPrimitivesWithReferrersTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/DownloadPrimitivesWithReferrersTask.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/io/DownloadPrimitivesWithReferrersTask.java	(revision 10413)
@@ -129,5 +129,5 @@
 
         // Append downloaded data to JOSM
-        OsmDataLayer layer = Main.main.getEditLayer();
+        OsmDataLayer layer = Main.getLayerManager().getEditLayer();
         if (layer == null || this.newLayer)
             Main.main.addLayer(tmpLayer);
Index: trunk/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java	(revision 10413)
@@ -97,5 +97,5 @@
      */
     public void startUserInput() {
-        pnlTagEditor.initAutoCompletion(Main.main.getEditLayer());
+        pnlTagEditor.initAutoCompletion(Main.getLayerManager().getEditLayer());
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java	(revision 10413)
@@ -389,5 +389,5 @@
                 @Override
                 public void run() {
-                    RelationEditor.getEditor(Main.main.getEditLayer(), r, members).setVisible(true);
+                    RelationEditor.getEditor(Main.getLayerManager().getEditLayer(), r, members).setVisible(true);
                 }
             });
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetItem.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetItem.java	(revision 10412)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetItem.java	(revision 10413)
@@ -41,5 +41,5 @@
     protected void initAutoCompletionField(AutoCompletingTextField field, List<String> keys) {
         if (Main.main == null) return;
-        OsmDataLayer layer = Main.main.getEditLayer();
+        OsmDataLayer layer = Main.getLayerManager().getEditLayer();
         if (layer == null) {
             return;
