Index: applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java
===================================================================
--- applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java	(revision 13497)
+++ applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java	(revision 15953)
@@ -13,17 +13,15 @@
 import java.util.Collection;
 
-import javax.swing.JButton;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 
 import org.openstreetmap.josm.data.SelectionChangedListener;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
-import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.gui.SideButton;
 import org.openstreetmap.josm.gui.dialogs.ToggleDialog;
-import org.openstreetmap.josm.gui.SideButton;
-import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.Shortcut;
-import org.openstreetmap.josm.Main;
 
 /**
@@ -107,5 +105,5 @@
        //TODO: is this enough?
 
-        Main.ds.selListeners.add(new SelectionChangedListener(){
+        DataSet.selListeners.add(new SelectionChangedListener(){
 
             public void selectionChanged(Collection<? extends OsmPrimitive> arg0) {
@@ -120,6 +118,6 @@
                                             lastNode = n;
                                         }else{
-                                            length += MeasurementLayer.calcDistance(lastNode.coor, n.coor);
-                                            segAngle = MeasurementLayer.angleBetween(lastNode.coor, n.coor);
+                                            length += MeasurementLayer.calcDistance(lastNode.getCoor(), n.getCoor());
+                                            segAngle = MeasurementLayer.angleBetween(lastNode.getCoor(), n.getCoor());
                                             lastNode = n;
                                         }
@@ -129,8 +127,8 @@
                                         for(Node n: w.nodes){
                                             if(lastN != null){
-                                                length += MeasurementLayer.calcDistance(lastN.coor, n.coor);
+                                                length += MeasurementLayer.calcDistance(lastN.getCoor(), n.getCoor());
                                                 //http://local.wasp.uwa.edu.au/~pbourke/geometry/polyarea/
-                                                area += (MeasurementLayer.calcX(n.coor) * MeasurementLayer.calcY(lastN.coor))
-                              - (MeasurementLayer.calcY(n.coor) * MeasurementLayer.calcX(lastN.coor));
+                                                area += (MeasurementLayer.calcX(n.getCoor()) * MeasurementLayer.calcY(lastN.getCoor()))
+                              - (MeasurementLayer.calcY(n.getCoor()) * MeasurementLayer.calcX(lastN.getCoor()));
                                             }
                                             lastN = n;
Index: applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java
===================================================================
--- applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java	(revision 13497)
+++ applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java	(revision 15953)
@@ -14,37 +14,29 @@
 import java.util.Collection;
 
+import javax.swing.AbstractAction;
 import javax.swing.Box;
-import javax.swing.AbstractAction;
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.DefaultListModel;
 import javax.swing.Icon;
 import javax.swing.ImageIcon;
-import javax.swing.JMenuItem;
 import javax.swing.JCheckBox;
-import javax.swing.JSeparator;
-import javax.swing.DefaultListCellRenderer;
-import javax.swing.DefaultListModel;
-import javax.swing.JButton;
 import javax.swing.JDialog;
-import javax.swing.JOptionPane;
 import javax.swing.JLabel;
 import javax.swing.JList;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.ListSelectionModel;
-import javax.swing.UIManager;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JSeparator;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.WayPoint;
+import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
+import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
+import org.openstreetmap.josm.gui.layer.GpxLayer;
+import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.tools.ImageProvider;
-import org.openstreetmap.josm.data.coor.LatLon;
-import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
-import org.openstreetmap.josm.data.gpx.WayPoint;
-import org.openstreetmap.josm.data.gpx.GpxData;
-import org.openstreetmap.josm.data.gpx.GpxTrack;
-import org.openstreetmap.josm.gui.MapView;
-import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
-import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
-import org.openstreetmap.josm.gui.layer.Layer;
-import org.openstreetmap.josm.gui.layer.GpxLayer;
 
 
@@ -214,5 +206,4 @@
         double lat1, lon1, lat2, lon2;
         double dlon;
-        double heading;
 
         lat1 = p1.lat() * Math.PI / 180.0;
@@ -257,6 +248,4 @@
     private class GPXLayerImportAction extends AbstractAction {
 
-    private MeasurementLayer layer;
-
     /**
      * The data model for the list component.
@@ -269,5 +258,4 @@
     public GPXLayerImportAction(MeasurementLayer layer) {
         super(tr("Import path from GPX layer"), ImageProvider.get("dialogs", "edit")); // TODO: find better image
-        this.layer = layer;
     }
 
Index: applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementPlugin.java
===================================================================
--- applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementPlugin.java	(revision 13497)
+++ applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementPlugin.java	(revision 15953)
@@ -36,5 +36,5 @@
             currentLayer = new MeasurementLayer(tr("Measurements"));
             Main.main.addLayer(currentLayer);
-            currentLayer.listeners.add(new LayerChangeListener(){
+            Layer.listeners.add(new LayerChangeListener(){
                 public void activeLayerChange(final Layer oldLayer, final Layer newLayer) {
                     if(newLayer instanceof MeasurementLayer)
