Index: applications/editors/josm/plugins/CustomizePublicTransportStop/build.xml
===================================================================
--- applications/editors/josm/plugins/CustomizePublicTransportStop/build.xml	(revision 34499)
+++ applications/editors/josm/plugins/CustomizePublicTransportStop/build.xml	(revision 34500)
@@ -5,5 +5,5 @@
     <property name="commit.message" value="Commit message"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="12840"/>
+    <property name="plugin.main.version" value="14153"/>
 
     <!-- ** include targets that all plugins have in common ** -->
Index: applications/editors/josm/plugins/CustomizePublicTransportStop/src/ru/rodsoft/openstreetmap/josm/plugins/customizepublictransportstop/CreateNewStopPointOperation.java
===================================================================
--- applications/editors/josm/plugins/CustomizePublicTransportStop/src/ru/rodsoft/openstreetmap/josm/plugins/customizepublictransportstop/CreateNewStopPointOperation.java	(revision 34499)
+++ applications/editors/josm/plugins/CustomizePublicTransportStop/src/ru/rodsoft/openstreetmap/josm/plugins/customizepublictransportstop/CreateNewStopPointOperation.java	(revision 34500)
@@ -10,7 +10,7 @@
 import java.util.TreeMap;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.command.AddCommand;
 import org.openstreetmap.josm.command.ChangeCommand;
+import org.openstreetmap.josm.data.UndoRedoHandler;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -20,6 +20,8 @@
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.WaySegment;
+import org.openstreetmap.josm.data.projection.ProjectionRegistry;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.spi.preferences.Config;
 import org.openstreetmap.josm.tools.Geometry;
 
@@ -187,8 +189,8 @@
 
         if (ds != null) {
-            double snapDistanceSq = Main.pref.getInt("mappaint.segment.snap-distance", 200);
+            double snapDistanceSq = Config.getPref().getInt("mappaint.segment.snap-distance", 200);
             snapDistanceSq *= snapDistanceSq;
 
-            for (Way w : ds.searchWays(getBBox(p, Main.pref.getInt("mappaint.segment.snap-distance", 200)))) {
+            for (Way w : ds.searchWays(getBBox(p, Config.getPref().getInt("mappaint.segment.snap-distance", 200)))) {
                 Node lastN = null;
                 int i = -2;
@@ -256,6 +258,6 @@
 
                     EastNorth newPosition = Geometry.closestPointToSegment(n.getEastNorth(), lastN.getEastNorth(),
-                            Main.getProjection().latlon2eastNorth(platformCoord));
-                    LatLon newNodePosition = Main.getProjection().eastNorth2latlon(newPosition);
+                            ProjectionRegistry.getProjection().latlon2eastNorth(platformCoord));
+                    LatLon newNodePosition = ProjectionRegistry.getProjection().eastNorth2latlon(newPosition);
                     Point2D lastN2D = mapView.getPoint2D(lastN);
                     Point2D n2D = mapView.getPoint2D(n);
@@ -280,10 +282,10 @@
      */
     protected Node createNodeOnWay(Node newStopNode, WaySegment waySegment) {
-        Main.main.undoRedo.add(new AddCommand(MainApplication.getLayerManager().getEditDataSet(), newStopNode));
+        UndoRedoHandler.getInstance().add(new AddCommand(MainApplication.getLayerManager().getEditDataSet(), newStopNode));
         List<Node> wayNodes = waySegment.way.getNodes();
         wayNodes.add(waySegment.lowerIndex + 1, newStopNode);
         Way newWay = new Way(waySegment.way);
         newWay.setNodes(wayNodes);
-        Main.main.undoRedo.add(new ChangeCommand(waySegment.way, newWay));
+        UndoRedoHandler.getInstance().add(new ChangeCommand(waySegment.way, newWay));
         return newStopNode;
     }
Index: applications/editors/josm/plugins/CustomizePublicTransportStop/src/ru/rodsoft/openstreetmap/josm/plugins/customizepublictransportstop/CustomizePublicTransportStopDialog.java
===================================================================
--- applications/editors/josm/plugins/CustomizePublicTransportStop/src/ru/rodsoft/openstreetmap/josm/plugins/customizepublictransportstop/CustomizePublicTransportStopDialog.java	(revision 34499)
+++ applications/editors/josm/plugins/CustomizePublicTransportStop/src/ru/rodsoft/openstreetmap/josm/plugins/customizepublictransportstop/CustomizePublicTransportStopDialog.java	(revision 34500)
@@ -1,4 +1,6 @@
 // License: GPL. For details, see LICENSE file.
 package ru.rodsoft.openstreetmap.josm.plugins.customizepublictransportstop;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.awt.Frame;
@@ -21,7 +23,5 @@
 import javax.swing.JTextField;
 
-import static org.openstreetmap.josm.tools.I18n.tr;
-
-import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MainApplication;
 
 /**
@@ -144,5 +144,5 @@
      */
     public CustomizePublicTransportStopDialog() {
-        Frame frame = JOptionPane.getFrameForComponent(Main.parent);
+        Frame frame = JOptionPane.getFrameForComponent(MainApplication.getMainFrame());
         jDialog = new JDialog(frame, tr(STOP_CUSTOMIZING_DIALOG_CAPTION), false);
         JPanel contentPane = createContentPane();
Index: applications/editors/josm/plugins/CustomizePublicTransportStop/src/ru/rodsoft/openstreetmap/josm/plugins/customizepublictransportstop/CustomizeStopAreaOperation.java
===================================================================
--- applications/editors/josm/plugins/CustomizePublicTransportStop/src/ru/rodsoft/openstreetmap/josm/plugins/customizepublictransportstop/CustomizeStopAreaOperation.java	(revision 34499)
+++ applications/editors/josm/plugins/CustomizePublicTransportStop/src/ru/rodsoft/openstreetmap/josm/plugins/customizepublictransportstop/CustomizeStopAreaOperation.java	(revision 34500)
@@ -2,10 +2,9 @@
 package ru.rodsoft.openstreetmap.josm.plugins.customizepublictransportstop;
 
+import static org.openstreetmap.josm.tools.I18n.tr;
+
 import java.util.ArrayList;
 import java.util.List;
 
-import static org.openstreetmap.josm.tools.I18n.tr;
-
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.command.AddCommand;
 import org.openstreetmap.josm.command.ChangeCommand;
@@ -13,4 +12,5 @@
 import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.UndoRedoHandler;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -276,5 +276,5 @@
             newRelation.addMember(new RelationMember("", otherMember));
         }
-        Main.main.undoRedo.add(new AddCommand(MainApplication.getLayerManager().getEditDataSet(), newRelation));
+        UndoRedoHandler.getInstance().add(new AddCommand(MainApplication.getLayerManager().getEditDataSet(), newRelation));
         commands = generalTagAssign(newRelation, commands, stopArea);
         commands = assignTag(commands, newRelation, OSMTags.TYPE_TAG, OSMTags.PUBLIC_TRANSPORT_TAG);
@@ -465,6 +465,6 @@
                 Node newNode = new Node();
                 newNode.setCoor(centerOfPlatform);
-                Main.main.undoRedo.add(new AddCommand(MainApplication.getLayerManager().getEditDataSet(), newNode));
-                Main.main.undoRedo.add(new ChangePropertyCommand(newNode, tag, tagValue));
+                UndoRedoHandler.getInstance().add(new AddCommand(MainApplication.getLayerManager().getEditDataSet(), newNode));
+                UndoRedoHandler.getInstance().add(new ChangePropertyCommand(newNode, tag, tagValue));
                 commands = assignTag(commands, newNode, tag, tagValue);
                 stopArea.otherMembers.add(newNode);
@@ -571,5 +571,5 @@
         if (commands != null && !commands.isEmpty())
             try {
-                Main.main.undoRedo.add(new SequenceCommand(tr(TAG_ASSIGN_COMMAND_NAME), commands));
+                UndoRedoHandler.getInstance().add(new SequenceCommand(tr(TAG_ASSIGN_COMMAND_NAME), commands));
                 return stopArea;
             } catch (Exception ex) {
Index: applications/editors/josm/plugins/CustomizePublicTransportStop/src/ru/rodsoft/openstreetmap/josm/plugins/customizepublictransportstop/MessageBox.java
===================================================================
--- applications/editors/josm/plugins/CustomizePublicTransportStop/src/ru/rodsoft/openstreetmap/josm/plugins/customizepublictransportstop/MessageBox.java	(revision 34499)
+++ applications/editors/josm/plugins/CustomizePublicTransportStop/src/ru/rodsoft/openstreetmap/josm/plugins/customizepublictransportstop/MessageBox.java	(revision 34500)
@@ -2,6 +2,7 @@
 package ru.rodsoft.openstreetmap.josm.plugins.customizepublictransportstop;
 
+import java.awt.Component;
+
 import javax.swing.JOptionPane;
-import java.awt.Component;
 
 /**
