Index: applications/editors/josm/plugins/terracer/build.xml
===================================================================
--- applications/editors/josm/plugins/terracer/build.xml	(revision 34561)
+++ applications/editors/josm/plugins/terracer/build.xml	(revision 34562)
@@ -2,5 +2,5 @@
 <project name="terracer" default="dist" basedir=".">
     <property name="commit.message" value="applied #j5760 (patch by robome) - Order of housenumbers not correct"/>
-    <property name="plugin.main.version" value="12859"/>
+    <property name="plugin.main.version" value="14153"/>
     <property name="plugin.author" value="Matt Amos"/>
     <property name="plugin.class" value="terracer.TerracerPlugin"/>
Index: applications/editors/josm/plugins/terracer/src/terracer/HouseNumberInputDialog.java
===================================================================
--- applications/editors/josm/plugins/terracer/src/terracer/HouseNumberInputDialog.java	(revision 34561)
+++ applications/editors/josm/plugins/terracer/src/terracer/HouseNumberInputDialog.java	(revision 34562)
@@ -13,5 +13,4 @@
 import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.List;
 import java.util.TreeSet;
 
@@ -23,10 +22,8 @@
 import javax.swing.JTextField;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmDataManager;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
-import org.openstreetmap.josm.data.tagging.ac.AutoCompletionItem;
-import org.openstreetmap.josm.data.tagging.ac.AutoCompletionSet;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.MainApplication;
@@ -34,4 +31,5 @@
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionManager;
 import org.openstreetmap.josm.gui.util.WindowGeometry;
+import org.openstreetmap.josm.spi.preferences.Config;
 import org.openstreetmap.josm.tools.GBC;
 
@@ -96,5 +94,5 @@
     public HouseNumberInputDialog(HouseNumberInputHandler handler, Way street, String streetName,
             String buildingType, boolean relationExists, ArrayList<Node> housenumbers) {
-        super(Main.parent,
+        super(MainApplication.getMainFrame(),
                 tr("Terrace a house"),
                 new String[] {tr("OK"), tr("Cancel")},
@@ -117,5 +115,5 @@
         getRootPane().setDefaultButton(defaultButton);
         pack();
-        setRememberWindowGeometry(getClass().getName() + ".geometry", WindowGeometry.centerInWindow(Main.parent, getPreferredSize()));
+        setRememberWindowGeometry(getClass().getName() + ".geometry", WindowGeometry.centerInWindow(MainApplication.getMainFrame(), getPreferredSize()));
         lo.requestFocusInWindow();
     }
@@ -179,6 +177,6 @@
             final String txt = relationExists ? tr("add to existing associatedStreet relation") : tr("create an associatedStreet relation");
 
-            handleRelationCheckBox = new JCheckBox(txt, relationExists ? Main.pref.getBoolean(HANDLE_RELATION, true) : false);
-            keepOutlineCheckBox = new JCheckBox(tr("keep outline way"), Main.pref.getBoolean(KEEP_OUTLINE, false));
+            handleRelationCheckBox = new JCheckBox(txt, relationExists ? Config.getPref().getBoolean(HANDLE_RELATION, true) : false);
+            keepOutlineCheckBox = new JCheckBox(tr("keep outline way"), Config.getPref().getBoolean(KEEP_OUTLINE, false));
 
             inputPanel = new JPanel();
@@ -314,5 +312,5 @@
         if (buildingComboBox == null) {
             buildingComboBox = new AutoCompletingComboBox();
-            buildingComboBox.setPossibleAcItems(AutoCompletionManager.of(Main.main.getEditDataSet()).getTagValues("building"));
+            buildingComboBox.setPossibleAcItems(AutoCompletionManager.of(OsmDataManager.getInstance().getEditDataSet()).getTagValues("building"));
             buildingComboBox.setEditable(true);
             if (buildingType != null && !buildingType.isEmpty()) {
@@ -333,5 +331,5 @@
         if (segments == null) {
             segments = new JTextField();
-            segments.setText(Main.pref.get(DEFAULT_SEGMENTS, "2"));
+            segments.setText(Config.getPref().get(DEFAULT_SEGMENTS, "2"));
         }
         return segments;
@@ -348,5 +346,5 @@
             interpolation.add(tr("All"));
             interpolation.add(tr("Even/Odd"));
-            if (Main.pref.getInt(INTERPOLATION, 2) == 1) {
+            if (Config.getPref().getInt(INTERPOLATION, 2) == 1) {
                 interpolation.select(tr("All"));
             } else {
Index: applications/editors/josm/plugins/terracer/src/terracer/HouseNumberInputHandler.java
===================================================================
--- applications/editors/josm/plugins/terracer/src/terracer/HouseNumberInputHandler.java	(revision 34561)
+++ applications/editors/josm/plugins/terracer/src/terracer/HouseNumberInputHandler.java	(revision 34562)
@@ -19,5 +19,4 @@
 import javax.swing.JTextField;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.data.osm.Node;
@@ -26,4 +25,5 @@
 import org.openstreetmap.josm.data.tagging.ac.AutoCompletionItem;
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingComboBox;
+import org.openstreetmap.josm.spi.preferences.Config;
 import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.UserCancelException;
@@ -445,7 +445,7 @@
      */
     public void saveValues() {
-        Main.pref.putBoolean(HouseNumberInputDialog.HANDLE_RELATION, doHandleRelation());
-        Main.pref.putBoolean(HouseNumberInputDialog.KEEP_OUTLINE, doKeepOutline());
-        Main.pref.put(HouseNumberInputDialog.INTERPOLATION, stepSize().toString());
+        Config.getPref().putBoolean(HouseNumberInputDialog.HANDLE_RELATION, doHandleRelation());
+        Config.getPref().putBoolean(HouseNumberInputDialog.KEEP_OUTLINE, doKeepOutline());
+        Config.getPref().put(HouseNumberInputDialog.INTERPOLATION, stepSize().toString());
     }
 }
Index: applications/editors/josm/plugins/terracer/src/terracer/ReverseTerraceAction.java
===================================================================
--- applications/editors/josm/plugins/terracer/src/terracer/ReverseTerraceAction.java	(revision 34561)
+++ applications/editors/josm/plugins/terracer/src/terracer/ReverseTerraceAction.java	(revision 34562)
@@ -13,9 +13,9 @@
 import javax.swing.JOptionPane;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.command.ChangePropertyCommand;
 import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.UndoRedoHandler;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -81,5 +81,5 @@
 
         if (front.isEmpty()) {
-            JOptionPane.showMessageDialog(Main.parent,
+            JOptionPane.showMessageDialog(MainApplication.getMainFrame(),
                     tr("Cannot reverse!"));
             return;
@@ -124,5 +124,5 @@
         }
 
-        MainApplication.undoRedo.add(new SequenceCommand(tr("Reverse Terrace"), commands));
+        UndoRedoHandler.getInstance().add(new SequenceCommand(tr("Reverse Terrace"), commands));
         MainApplication.getLayerManager().getEditDataSet().setSelected(orderedWays);
     }
Index: applications/editors/josm/plugins/terracer/src/terracer/TerracerAction.java
===================================================================
--- applications/editors/josm/plugins/terracer/src/terracer/TerracerAction.java	(revision 34561)
+++ applications/editors/josm/plugins/terracer/src/terracer/TerracerAction.java	(revision 34562)
@@ -24,5 +24,4 @@
 import javax.swing.JOptionPane;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.command.AddCommand;
@@ -32,4 +31,5 @@
 import org.openstreetmap.josm.command.DeleteCommand;
 import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.UndoRedoHandler;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
@@ -179,5 +179,5 @@
         } catch (InvalidUserInputException ex) {
             Logging.warn("Terracer: "+ex.getMessage());
-            new ExtendedDialog(Main.parent, tr("Invalid selection"), new String[] {"OK"})
+            new ExtendedDialog(MainApplication.getMainFrame(), tr("Invalid selection"), new String[] {"OK"})
                 .setButtonIcons(new String[] {"ok"}).setIcon(JOptionPane.INFORMATION_MESSAGE)
                 .setContent(tr("Select a single, closed way of at least four nodes. " +
@@ -425,5 +425,5 @@
         }
 
-        MainApplication.undoRedo.add(createTerracingCommand(outline));
+        UndoRedoHandler.getInstance().add(createTerracingCommand(outline));
         if (nb <= 1 && street != null) {
             // Select the way (for quick selection of a new house (with the same way))
