Index: /applications/editors/josm/plugins/measurement/build.xml
===================================================================
--- /applications/editors/josm/plugins/measurement/build.xml	(revision 12470)
+++ /applications/editors/josm/plugins/measurement/build.xml	(revision 12471)
@@ -42,4 +42,5 @@
         <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
         <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
+        <attribute name="Plugin-Mainversion" value="1153" />
       </manifest>
     </jar>
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 12470)
+++ /applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java	(revision 12471)
@@ -1,4 +1,5 @@
 package org.openstreetmap.josm.plugins.measurement;
 
+import static org.openstreetmap.josm.tools.I18n.marktr;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
@@ -21,5 +22,7 @@
 import org.openstreetmap.josm.data.osm.Node;
 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;
 
@@ -36,26 +39,26 @@
      * The reset button
      */
-    private JButton resetButton;
-    
+    private SideButton resetButton;
+
     /**
      * The measurement label for the path length
      */
     protected JLabel pathLengthLabel;
-    
+
     /**
      * The measurement label for the currently selected segments
      */
     protected JLabel selectLengthLabel;
-    
+
     /**
      * The measurement label for area of the currently selected loop
      */
     protected JLabel selectAreaLabel;
-    
+
     /**
      * The measurement label for the segment angle, actually updated, if 2 nodes are selected
      */
     protected JLabel segAngleLabel;
-    
+
     /**
      * Constructor
@@ -63,14 +66,12 @@
     public MeasurementDialog() 
     {
-        super(tr("Measured values"), "measure", tr("Open the measurement window."), KeyEvent.VK_M, KeyEvent.ALT_DOWN_MASK);
-        
+        super(tr("Measured values"), "measure", tr("Open the measurement window."),
+        Shortcut.registerShortcut("subwindow:measurement", tr("Toggle: {0}", tr("Measured values")),
+        KeyEvent.VK_M, Shortcut.GROUP_LAYER), 150);
+
         JPanel buttonPanel = new JPanel(new GridLayout(1,2));
-        
-		resetButton = new JButton(tr("Reset"), ImageProvider.get("mapmode/selection/select"));
-		resetButton.setActionCommand("Reset");
-		resetButton.addActionListener(this);
-		resetButton.setToolTipText(tr("Reset current measurement results and delete measurement path."));
-//		resetButton.putClientProperty("help", "Dialog/SelectionList/Reset");
-		
+
+        resetButton = new SideButton(marktr("Reset"), "select", "Measurement",
+                tr("Reset current measurement results and delete measurement path."), this);
         buttonPanel.add(resetButton);
         add(buttonPanel, BorderLayout.SOUTH);
Index: /applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementMode.java
===================================================================
--- /applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementMode.java	(revision 12470)
+++ /applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementMode.java	(revision 12471)
@@ -48,8 +48,5 @@
 				return;
 			}
-			if (MeasurementPlugin.currentLayer == null){
-				Main.main.addLayer(new MeasurementLayer("Measurement"));
-			}
-			MeasurementPlugin.currentLayer.mouseClicked(e);
+			MeasurementPlugin.getCurrentLayer().mouseClicked(e);
 		}
 	}
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 12470)
+++ /applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementPlugin.java	(revision 12471)
@@ -6,6 +6,6 @@
 import org.openstreetmap.josm.gui.IconToggleButton;
 import org.openstreetmap.josm.gui.MapFrame;
-import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
 import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.Layer.LayerChangeListener;
 import org.openstreetmap.josm.plugins.Plugin;
 
@@ -26,12 +26,15 @@
 	@Override
 	public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {
-		if(newFrame != null){
+		if(newFrame != null)
 			newFrame.addToggleDialog(measurementDialog);
-		}
-		if(Main.map != null){
-			Main.map.toolBarActions.add(btn);
-			Main.map.toolGroup.add(btn);
-			
-			Main.map.mapView.addLayerChangeListener(new LayerChangeListener(){
+		if(Main.map != null)
+			Main.map.addMapMode(btn);
+	}
+
+	public static MeasurementLayer getCurrentLayer(){
+		if(currentLayer == null){
+			currentLayer = new MeasurementLayer(tr("Measurement"));
+			Main.main.addLayer(currentLayer);
+			currentLayer.listeners.add(new LayerChangeListener(){
 				public void activeLayerChange(final Layer oldLayer, final Layer newLayer) {
 					if(newLayer instanceof MeasurementLayer)
@@ -44,11 +47,4 @@
 			});
 		}
-	}
-
-	public static MeasurementLayer getCurrentLayer(){
-		if(currentLayer == null){
-			currentLayer = new MeasurementLayer("Measurement");
-			Main.main.addLayer(currentLayer);
-		}
 		return currentLayer;
 	}
