Index: /applications/editors/josm/plugins/lakewalker/build.xml
===================================================================
--- /applications/editors/josm/plugins/lakewalker/build.xml	(revision 34467)
+++ /applications/editors/josm/plugins/lakewalker/build.xml	(revision 34468)
@@ -5,5 +5,5 @@
     <property name="commit.message" value="Changed the constructor signature of the plugin main class"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="12856"/>
+    <property name="plugin.main.version" value="14153"/>
 
     <!-- Configure these properties (replace "..." accordingly).
Index: /applications/editors/josm/plugins/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/LakewalkerAction.java
===================================================================
--- /applications/editors/josm/plugins/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/LakewalkerAction.java	(revision 34467)
+++ /applications/editors/josm/plugins/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/LakewalkerAction.java	(revision 34468)
@@ -19,9 +19,9 @@
 import javax.swing.JOptionPane;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.command.AddCommand;
 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;
@@ -32,4 +32,5 @@
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
+import org.openstreetmap.josm.spi.preferences.Config;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.Logging;
@@ -79,6 +80,6 @@
     */
     private void cleanupCache() {
-        final long maxCacheAge = System.currentTimeMillis()-Main.pref.getInt(LakewalkerPreferences.PREF_MAXCACHEAGE, 100)*24*60*60*1000L;
-        final long maxCacheSize = Main.pref.getInt(LakewalkerPreferences.PREF_MAXCACHESIZE, 300)*1024*1024L;
+        final long maxCacheAge = System.currentTimeMillis()-Config.getPref().getInt(LakewalkerPreferences.PREF_MAXCACHEAGE, 100)*24*60*60*1000L;
+        final long maxCacheSize = Config.getPref().getInt(LakewalkerPreferences.PREF_MAXCACHESIZE, 300)*1024*1024L;
 
         for (String wmsFolder : LakewalkerPreferences.WMSLAYERS) {
@@ -112,5 +113,5 @@
                 // create cache directory
                 if (!wmsCacheDir.mkdirs()) {
-                    JOptionPane.showMessageDialog(Main.parent,
+                    JOptionPane.showMessageDialog(MainApplication.getMainFrame(),
                             tr("Error creating cache directory: {0}", wmsCacheDir.getPath()));
                 }
@@ -129,12 +130,12 @@
         * Collect options
         */
-        final int waylen = Main.pref.getInt(LakewalkerPreferences.PREF_MAX_SEG, 500);
-        final int maxnode = Main.pref.getInt(LakewalkerPreferences.PREF_MAX_NODES, 50000);
-        final int threshold = Main.pref.getInt(LakewalkerPreferences.PREF_THRESHOLD_VALUE, 90);
-        final double epsilon = Main.pref.getDouble(LakewalkerPreferences.PREF_EPSILON, 0.0003);
-        final int resolution = Main.pref.getInt(LakewalkerPreferences.PREF_LANDSAT_RES, 4000);
-        final int tilesize = Main.pref.getInt(LakewalkerPreferences.PREF_LANDSAT_SIZE, 2000);
-        final String startdir = Main.pref.get(LakewalkerPreferences.PREF_START_DIR, "east");
-        final String wmslayer = Main.pref.get(LakewalkerPreferences.PREF_WMS, "IR1");
+        final int waylen = Config.getPref().getInt(LakewalkerPreferences.PREF_MAX_SEG, 500);
+        final int maxnode = Config.getPref().getInt(LakewalkerPreferences.PREF_MAX_NODES, 50000);
+        final int threshold = Config.getPref().getInt(LakewalkerPreferences.PREF_THRESHOLD_VALUE, 90);
+        final double epsilon = Config.getPref().getDouble(LakewalkerPreferences.PREF_EPSILON, 0.0003);
+        final int resolution = Config.getPref().getInt(LakewalkerPreferences.PREF_LANDSAT_RES, 4000);
+        final int tilesize = Config.getPref().getInt(LakewalkerPreferences.PREF_LANDSAT_SIZE, 2000);
+        final String startdir = Config.getPref().get(LakewalkerPreferences.PREF_START_DIR, "east");
+        final String wmslayer = Config.getPref().get(LakewalkerPreferences.PREF_WMS, "IR1");
 
         try {
@@ -220,6 +221,6 @@
             Node fn = null;
 
-            double eastOffset = Main.pref.getDouble(LakewalkerPreferences.PREF_EAST_OFFSET, 0.0);
-            double northOffset = Main.pref.getDouble(LakewalkerPreferences.PREF_NORTH_OFFSET, 0.0);
+            double eastOffset = Config.getPref().getDouble(LakewalkerPreferences.PREF_EAST_OFFSET, 0.0);
+            double northOffset = Config.getPref().getDouble(LakewalkerPreferences.PREF_NORTH_OFFSET, 0.0);
 
             int nodesinway = 0;
@@ -245,6 +246,6 @@
                 way.addNode(n);
 
-                if (nodesinway > Main.pref.getInt(LakewalkerPreferences.PREF_MAX_SEG, 500)) {
-                    String waytype = Main.pref.get(LakewalkerPreferences.PREF_WAYTYPE, "water");
+                if (nodesinway > Config.getPref().getInt(LakewalkerPreferences.PREF_MAX_SEG, 500)) {
+                    String waytype = Config.getPref().get(LakewalkerPreferences.PREF_WAYTYPE, "water");
 
                     if (!waytype.equals("none")) {
@@ -252,5 +253,5 @@
                     }
 
-                    way.put("source", Main.pref.get(LakewalkerPreferences.PREF_SOURCE, "Landsat"));
+                    way.put("source", Config.getPref().get(LakewalkerPreferences.PREF_SOURCE, "Landsat"));
                     commands.add(new AddCommand(ds, way));
 
@@ -265,5 +266,5 @@
 
 
-            String waytype = Main.pref.get(LakewalkerPreferences.PREF_WAYTYPE, "water");
+            String waytype = Config.getPref().get(LakewalkerPreferences.PREF_WAYTYPE, "water");
 
             if (!waytype.equals("none")) {
@@ -271,5 +272,5 @@
             }
 
-            way.put("source", Main.pref.get(LakewalkerPreferences.PREF_SOURCE, "Landsat"));
+            way.put("source", Config.getPref().get(LakewalkerPreferences.PREF_SOURCE, "Landsat"));
 
             way.addNode(fn);
@@ -278,5 +279,5 @@
 
             if (!commands.isEmpty()) {
-                Main.main.undoRedo.add(new SequenceCommand(tr("Lakewalker trace"), commands));
+                UndoRedoHandler.getInstance().add(new SequenceCommand(tr("Lakewalker trace"), commands));
                 ds.setSelected(ways);
             } else {
Index: /applications/editors/josm/plugins/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/LakewalkerPlugin.java
===================================================================
--- /applications/editors/josm/plugins/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/LakewalkerPlugin.java	(revision 34467)
+++ /applications/editors/josm/plugins/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/LakewalkerPlugin.java	(revision 34468)
@@ -6,5 +6,4 @@
 import java.io.File;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MainMenu;
@@ -12,4 +11,5 @@
 import org.openstreetmap.josm.plugins.Plugin;
 import org.openstreetmap.josm.plugins.PluginInformation;
+import org.openstreetmap.josm.spi.preferences.Config;
 
 /**
@@ -30,5 +30,5 @@
 
     public static File getLakewalkerCacheDir() {
-        return new File(Main.pref.getDirs().getCacheDirectory(true), "lakewalkerwms");
+        return new File(Config.getDirs().getCacheDirectory(true), "lakewalkerwms");
     }
 }
Index: /applications/editors/josm/plugins/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/LakewalkerPreferences.java
===================================================================
--- /applications/editors/josm/plugins/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/LakewalkerPreferences.java	(revision 34467)
+++ /applications/editors/josm/plugins/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/LakewalkerPreferences.java	(revision 34468)
@@ -11,7 +11,7 @@
 import javax.swing.JPanel;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.preferences.DefaultTabPreferenceSetting;
 import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
+import org.openstreetmap.josm.spi.preferences.Config;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.I18n;
@@ -98,18 +98,18 @@
         buildPreferences(prefPanel);
 
-        maxSegsConfig.setValue(Main.pref.getInt(PREF_MAX_SEG, 500));
-        maxNodesConfig.setValue(Main.pref.getInt(PREF_MAX_NODES, 50000));
-        thresholdConfig.setValue(Main.pref.getInt(PREF_THRESHOLD_VALUE, 90));
-        epsilonConfig.setValue(Main.pref.getDouble(PREF_EPSILON, 0.0003));
-        landsatResConfig.setValue(Main.pref.getInt(PREF_LANDSAT_RES, 4000));
-        landsatSizeConfig.setValue(Main.pref.getInt(PREF_LANDSAT_SIZE, 2000));
-        eastOffsetConfig.setValue(Main.pref.getDouble(PREF_EAST_OFFSET, 0.0));
-        northOffsetConfig.setValue(Main.pref.getDouble(PREF_NORTH_OFFSET, 0.0));
-        startDirConfig.setValue(Main.pref.get(PREF_START_DIR, "east"));
-        lakeTypeConfig.setValue(Main.pref.get(PREF_WAYTYPE, "water"));
-        wmsConfig.setValue(Main.pref.get(PREF_WMS, "IR1"));
-        sourceConfig.setValue(Main.pref.get(PREF_SOURCE, "Landsat"));
-        maxCacheSizeConfig.setValue(Main.pref.getInt(PREF_MAXCACHESIZE, 300));
-        maxCacheAgeConfig.setValue(Main.pref.getInt(PREF_MAXCACHEAGE, 100));
+        maxSegsConfig.setValue(Config.getPref().getInt(PREF_MAX_SEG, 500));
+        maxNodesConfig.setValue(Config.getPref().getInt(PREF_MAX_NODES, 50000));
+        thresholdConfig.setValue(Config.getPref().getInt(PREF_THRESHOLD_VALUE, 90));
+        epsilonConfig.setValue(Config.getPref().getDouble(PREF_EPSILON, 0.0003));
+        landsatResConfig.setValue(Config.getPref().getInt(PREF_LANDSAT_RES, 4000));
+        landsatSizeConfig.setValue(Config.getPref().getInt(PREF_LANDSAT_SIZE, 2000));
+        eastOffsetConfig.setValue(Config.getPref().getDouble(PREF_EAST_OFFSET, 0.0));
+        northOffsetConfig.setValue(Config.getPref().getDouble(PREF_NORTH_OFFSET, 0.0));
+        startDirConfig.setValue(Config.getPref().get(PREF_START_DIR, "east"));
+        lakeTypeConfig.setValue(Config.getPref().get(PREF_WAYTYPE, "water"));
+        wmsConfig.setValue(Config.getPref().get(PREF_WMS, "IR1"));
+        sourceConfig.setValue(Config.getPref().get(PREF_SOURCE, "Landsat"));
+        maxCacheSizeConfig.setValue(Config.getPref().getInt(PREF_MAXCACHESIZE, 300));
+        maxCacheAgeConfig.setValue(Config.getPref().getInt(PREF_MAXCACHEAGE, 100));
     }
 
@@ -155,18 +155,18 @@
     @Override
     public boolean ok() {
-        Main.pref.put(PREF_MAX_SEG, maxSegsConfig.getValueString());
-        Main.pref.put(PREF_MAX_NODES, maxNodesConfig.getValueString());
-        Main.pref.put(PREF_THRESHOLD_VALUE, thresholdConfig.getValueString());
-        Main.pref.put(PREF_EPSILON, epsilonConfig.getValueString());
-        Main.pref.put(PREF_LANDSAT_RES, landsatResConfig.getValueString());
-        Main.pref.put(PREF_LANDSAT_SIZE, landsatSizeConfig.getValueString());
-        Main.pref.put(PREF_EAST_OFFSET, eastOffsetConfig.getValueString());
-        Main.pref.put(PREF_NORTH_OFFSET, northOffsetConfig.getValueString());
-        Main.pref.put(PREF_START_DIR, startDirConfig.getValueString());
-        Main.pref.put(PREF_WAYTYPE, lakeTypeConfig.getValueString());
-        Main.pref.put(PREF_WMS, wmsConfig.getValueString());
-        Main.pref.put(PREF_MAXCACHESIZE, maxCacheSizeConfig.getValueString());
-        Main.pref.put(PREF_MAXCACHEAGE, maxCacheAgeConfig.getValueString());
-        Main.pref.put(PREF_SOURCE, sourceConfig.getValueString());
+        Config.getPref().put(PREF_MAX_SEG, maxSegsConfig.getValueString());
+        Config.getPref().put(PREF_MAX_NODES, maxNodesConfig.getValueString());
+        Config.getPref().put(PREF_THRESHOLD_VALUE, thresholdConfig.getValueString());
+        Config.getPref().put(PREF_EPSILON, epsilonConfig.getValueString());
+        Config.getPref().put(PREF_LANDSAT_RES, landsatResConfig.getValueString());
+        Config.getPref().put(PREF_LANDSAT_SIZE, landsatSizeConfig.getValueString());
+        Config.getPref().put(PREF_EAST_OFFSET, eastOffsetConfig.getValueString());
+        Config.getPref().put(PREF_NORTH_OFFSET, northOffsetConfig.getValueString());
+        Config.getPref().put(PREF_START_DIR, startDirConfig.getValueString());
+        Config.getPref().put(PREF_WAYTYPE, lakeTypeConfig.getValueString());
+        Config.getPref().put(PREF_WMS, wmsConfig.getValueString());
+        Config.getPref().put(PREF_MAXCACHESIZE, maxCacheSizeConfig.getValueString());
+        Config.getPref().put(PREF_MAXCACHEAGE, maxCacheAgeConfig.getValueString());
+        Config.getPref().put(PREF_SOURCE, sourceConfig.getValueString());
         return false;
     }
