Index: /applications/editors/josm/plugins/addrinterpolation/build.xml
===================================================================
--- /applications/editors/josm/plugins/addrinterpolation/build.xml	(revision 34486)
+++ /applications/editors/josm/plugins/addrinterpolation/build.xml	(revision 34487)
@@ -4,5 +4,5 @@
     <property name="commit.message" value="Impoved Icon"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="12726"/>
+    <property name="plugin.main.version" value="14153"/>
     
     <!-- Configure these properties (replace "..." accordingly).
Index: /applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/AddrInterpolationAction.java
===================================================================
--- /applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/AddrInterpolationAction.java	(revision 34486)
+++ /applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/AddrInterpolationAction.java	(revision 34487)
@@ -6,16 +6,16 @@
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
-import java.util.Collection;
 
 import org.openstreetmap.josm.actions.JosmAction;
-import org.openstreetmap.josm.data.SelectionChangedListener;
-import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.DataSelectionListener;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.event.SelectionEventManager;
 import org.openstreetmap.josm.tools.Shortcut;
 
-@SuppressWarnings("serial")
-public class AddrInterpolationAction extends JosmAction implements
-SelectionChangedListener {
+/**
+ * Handy Address Interpolation Functions
+ */
+public class AddrInterpolationAction extends JosmAction implements DataSelectionListener {
 
     public AddrInterpolationAction() {
@@ -24,5 +24,5 @@
                         KeyEvent.VK_Z, Shortcut.ALT_CTRL), false);
         setEnabled(false);
-        DataSet.addSelectionListener(this);
+        SelectionEventManager.getInstance().addSelectionListener(this);
     }
 
@@ -33,8 +33,7 @@
 
     @Override
-    public void selectionChanged(
-            Collection<? extends OsmPrimitive> newSelection) {
+    public void selectionChanged(SelectionChangeEvent event) {
 
-        for (OsmPrimitive osm : newSelection) {
+        for (OsmPrimitive osm : event.getSelection()) {
             if (osm instanceof Way) {
                 setEnabled(true);
Index: /applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/AddrInterpolationDialog.java
===================================================================
--- /applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/AddrInterpolationDialog.java	(revision 34486)
+++ /applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/AddrInterpolationDialog.java	(revision 34487)
@@ -9,5 +9,4 @@
 import java.awt.Container;
 import java.awt.Dimension;
-import java.awt.Frame;
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
@@ -43,5 +42,4 @@
 import javax.swing.border.TitledBorder;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.command.AddCommand;
 import org.openstreetmap.josm.command.ChangeCommand;
@@ -50,4 +48,5 @@
 import org.openstreetmap.josm.command.DeleteCommand;
 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;
@@ -61,4 +60,7 @@
 import org.openstreetmap.josm.tools.ImageProvider;
 
+/**
+ * Address Interpolation dialog
+ */
 public class AddrInterpolationDialog extends JDialog implements ActionListener {
 
@@ -123,5 +125,5 @@
 
     private void ShowDialog(JPanel editControlsPane, String name) {
-        dialog = new EscapeDialog((Frame) Main.parent, name, true);
+        dialog = new EscapeDialog(MainApplication.getMainFrame(), name, true);
 
         dialog.add(editControlsPane);
@@ -619,5 +621,5 @@
         if (namedWayCount != 1) {
             JOptionPane.showMessageDialog(
-                    Main.parent,
+                    MainApplication.getMainFrame(),
                     tr("Please select a street to associate with address interpolation way"),
                     tr("Error"),
@@ -632,5 +634,5 @@
                 } else {
                     JOptionPane.showMessageDialog(
-                            Main.parent,
+                            MainApplication.getMainFrame(),
                             tr("Please select address interpolation way for this street"),
                             tr("Error"),
@@ -1002,5 +1004,5 @@
             }
             if (!errorMessage.equals("")) {
-                JOptionPane.showMessageDialog(Main.parent, errorMessage, tr("Error"), JOptionPane.ERROR_MESSAGE);
+                JOptionPane.showMessageDialog(MainApplication.getMainFrame(), errorMessage, tr("Error"), JOptionPane.ERROR_MESSAGE);
                 return false;
             }
@@ -1009,5 +1011,5 @@
         if (country != null) {
             if (country.length() != 2) {
-                JOptionPane.showMessageDialog(Main.parent,
+                JOptionPane.showMessageDialog(MainApplication.getMainFrame(),
                         tr("Country code must be 2 letters"), tr("Error"), JOptionPane.ERROR_MESSAGE);
                 return false;
@@ -1096,5 +1098,5 @@
 
         if (!commandGroup.isEmpty()) {
-            Main.main.undoRedo.add(new SequenceCommand(tr("Address Interpolation"), commandGroup));
+            UndoRedoHandler.getInstance().add(new SequenceCommand(tr("Address Interpolation"), commandGroup));
             MainApplication.getLayerManager().getEditLayer().invalidate();
         }
@@ -1240,5 +1242,5 @@
 
         } else {
-            JOptionPane.showMessageDialog(Main.parent, errorMessage, tr("Error"), JOptionPane.ERROR_MESSAGE);
+            JOptionPane.showMessageDialog(MainApplication.getMainFrame(), errorMessage, tr("Error"), JOptionPane.ERROR_MESSAGE);
             return false;
         }
Index: /applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/AddrInterpolationPlugin.java
===================================================================
--- /applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/AddrInterpolationPlugin.java	(revision 34486)
+++ /applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/AddrInterpolationPlugin.java	(revision 34487)
@@ -7,4 +7,7 @@
 import org.openstreetmap.josm.plugins.PluginInformation;
 
+/**
+ * Address Interpolation plugin
+ */
 public class AddrInterpolationPlugin extends Plugin {
 
Index: /applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/EscapeDialog.java
===================================================================
--- /applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/EscapeDialog.java	(revision 34486)
+++ /applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/EscapeDialog.java	(revision 34487)
@@ -2,7 +2,5 @@
 package org.openstreetmap.josm.plugins.AddrInterpolation;
 
-import java.awt.Dialog;
 import java.awt.Frame;
-import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.KeyEvent;
@@ -14,19 +12,4 @@
 
 public class EscapeDialog extends JDialog {
-    public EscapeDialog() {
-        this((Frame) null, false);
-    }
-    
-    public EscapeDialog(Frame owner) {
-        this(owner, false);
-    }
-    
-    public EscapeDialog(Frame owner, boolean modal) {
-        this(owner, null, modal);
-    }
-    
-    public EscapeDialog(Frame owner, String title) {
-        this(owner, title, false);
-    }
     
     public EscapeDialog(Frame owner, String title, boolean modal) {
@@ -34,28 +17,7 @@
     }
     
-    public EscapeDialog(Dialog owner) {
-        this(owner, false);
-    }
-    
-    public EscapeDialog(Dialog owner, boolean modal) {
-        this(owner, null, modal);
-    }
-    
-    public EscapeDialog(Dialog owner, String title) {
-        this(owner, title, false);
-    }
-    
-    public EscapeDialog(Dialog owner, String title, boolean modal) {
-        super(owner, title, modal);
-    }
-
     @Override
     protected JRootPane createRootPane() {
-        ActionListener escapeActionListener = new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent actionEvent) {
-                dispose();
-            }
-        };
+        ActionListener escapeActionListener = actionEvent -> dispose();
         JRootPane rootPane = new JRootPane();
         KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
@@ -65,3 +27,2 @@
     }
 }
-
