Index: applications/editors/josm/plugins/utilsplugin2/build.xml
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/build.xml	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/build.xml	(revision 33676)
@@ -5,5 +5,5 @@
     <property name="commit.message" value="[josm_utilsplugin2]: select boundary by double-click; multitagger table highlights"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="12678"/>
+    <property name="plugin.main.version" value="12840"/>
 
     <property name="plugin.author" value="Kalle Lampila, Upliner, Zverik, akks, joshdoe and others"/>
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/ExtractPointAction.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/ExtractPointAction.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/ExtractPointAction.java	(revision 33676)
@@ -14,5 +14,4 @@
 import javax.swing.JOptionPane;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.command.AddCommand;
@@ -21,4 +20,5 @@
 import org.openstreetmap.josm.command.MoveCommand;
 import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -46,5 +46,6 @@
     @Override
     public void actionPerformed(ActionEvent e) {
-        Collection<OsmPrimitive> selection = getLayerManager().getEditDataSet().getSelected();
+        DataSet ds = getLayerManager().getEditDataSet();
+        Collection<OsmPrimitive> selection = ds.getSelected();
         List<Node> selectedNodes = OsmPrimitive.getFilteredList(selection, Node.class);
         if (selectedNodes.size() != 1) {
@@ -61,5 +62,5 @@
             cmds.add(new MoveCommand(nd, MainApplication.getMap().mapView.getLatLon(p.x, p.y)));
         List<OsmPrimitive> refs = nd.getReferrers();
-        cmds.add(new AddCommand(ndCopy));
+        cmds.add(new AddCommand(ds, ndCopy));
 
         for (OsmPrimitive pr: refs) {
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/SplitObjectAction.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/SplitObjectAction.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/SplitObjectAction.java	(revision 33676)
@@ -19,6 +19,6 @@
 
 import org.openstreetmap.josm.actions.JosmAction;
-import org.openstreetmap.josm.actions.SplitWayAction;
 import org.openstreetmap.josm.command.DeleteCommand;
+import org.openstreetmap.josm.command.SplitWayCommand;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -185,5 +185,5 @@
         }
 
-        List<List<Node>> wayChunks = SplitWayAction.buildSplitChunks(selectedWay, selectedNodes);
+        List<List<Node>> wayChunks = SplitWayCommand.buildSplitChunks(selectedWay, selectedNodes);
         if (wayChunks != null) {
             // close the chunks
@@ -208,7 +208,7 @@
                 }
             }
-            SplitWayAction.SplitWayResult result = SplitWayAction.splitWay(
-                    getLayerManager().getEditLayer(), selectedWay, wayChunks, Collections.<OsmPrimitive>emptyList());
-            MainApplication.undoRedo.add(result.getCommand());
+            SplitWayCommand result = SplitWayCommand.splitWay(
+                    selectedWay, wayChunks, Collections.<OsmPrimitive>emptyList());
+            MainApplication.undoRedo.add(result);
             if (splitWay != null)
                 MainApplication.undoRedo.add(new DeleteCommand(splitWay));
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/SplitOnIntersectionsAction.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/SplitOnIntersectionsAction.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/SplitOnIntersectionsAction.java	(revision 33676)
@@ -16,7 +16,7 @@
 
 import org.openstreetmap.josm.actions.JosmAction;
-import org.openstreetmap.josm.actions.SplitWayAction;
 import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.command.SplitWayCommand;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -85,10 +85,7 @@
 
         for (Way splitWay : splitWays.keySet()) {
-            List<List<Node>> wayChunks = SplitWayAction.buildSplitChunks(splitWay, splitWays.get(splitWay));
+            List<List<Node>> wayChunks = SplitWayCommand.buildSplitChunks(splitWay, splitWays.get(splitWay));
             if (wayChunks != null) {
-                List<OsmPrimitive> sel = new ArrayList<>(selectedWays.size());
-                sel.addAll(selectedWays);
-                SplitWayAction.SplitWayResult result = SplitWayAction.splitWay(getLayerManager().getEditLayer(), splitWay, wayChunks, sel);
-                list.add(result.getCommand());
+                list.add(SplitWayCommand.splitWay(splitWay, wayChunks, new ArrayList<>(selectedWays)));
             }
         }
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/UnGlueRelationAction.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/UnGlueRelationAction.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/UnGlueRelationAction.java	(revision 33676)
@@ -11,9 +11,9 @@
 import java.util.List;
 
-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.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -52,5 +52,6 @@
         LinkedList<Command> cmds = new LinkedList<>();
         List<OsmPrimitive> newPrimitives = new LinkedList<>();
-        Collection<OsmPrimitive> selection = getLayerManager().getEditDataSet().getSelected();
+        DataSet ds = getLayerManager().getEditDataSet();
+        Collection<OsmPrimitive> selection = ds.getSelected();
 
         for (OsmPrimitive p : selection) {
@@ -69,6 +70,6 @@
                     }
                     newPrimitives.add(newp);
-                    cmds.add(new AddCommand(newp));
-                    cmds.add(new ChangeRelationMemberCommand(relation, p, newp));
+                    cmds.add(new AddCommand(ds, newp));
+                    cmds.add(new ChangeRelationMemberCommand(ds, relation, p, newp));
                 } else {
                     first = false;
@@ -83,5 +84,5 @@
             //Set selection all primiteves (new and old)
             newPrimitives.addAll(selection);
-            getLayerManager().getEditDataSet().setSelected(newPrimitives);
+            ds.setSelected(newPrimitives);
             MainApplication.getMap().mapView.repaint();
         }
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/command/ChangeRelationMemberCommand.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/command/ChangeRelationMemberCommand.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/command/ChangeRelationMemberCommand.java	(revision 33676)
@@ -9,4 +9,5 @@
 
 import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.DefaultNameFormatter;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -25,5 +26,6 @@
     private boolean oldModified;
 
-    public ChangeRelationMemberCommand(Relation relation, OsmPrimitive oldMember, OsmPrimitive newMember) {
+    public ChangeRelationMemberCommand(DataSet ds, Relation relation, OsmPrimitive oldMember, OsmPrimitive newMember) {
+        super(ds);
         this.relation = relation;
         this.oldMember = oldMember;
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/curves/CircleArcMaker.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/curves/CircleArcMaker.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/curves/CircleArcMaker.java	(revision 33676)
@@ -18,7 +18,9 @@
 import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.data.coor.EastNorth;
+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.gui.MainApplication;
 
 public final class CircleArcMaker {
@@ -68,4 +70,5 @@
 
         Set<Way> targetWays = new HashSet<>();
+        DataSet ds = MainApplication.getLayerManager().getEditDataSet();
 
         boolean nodesHaveBeenChoosen = false;
@@ -79,5 +82,5 @@
                 Way newWay = new Way();
                 targetWays.add(newWay);
-                cmds.add(new AddCommand(newWay));
+                cmds.add(new AddCommand(ds, newWay));
                 newWay.addNode(n1);
                 newWay.addNode(n2);
@@ -149,5 +152,5 @@
                 Node n = new Node(p);
                 arcNodes.add(n);
-                cmds.add(new AddCommand(n));
+                cmds.add(new AddCommand(ds, n));
             }
             i++;
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/curves/CurveAction.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/curves/CurveAction.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/curves/CurveAction.java	(revision 33676)
@@ -39,5 +39,5 @@
     private void updatePreferences() {
         // @formatter:off
-        angleSeparation = Main.pref.getInteger(prefKey("circlearc.angle-separation"), 20);
+        angleSeparation = Main.pref.getInt(prefKey("circlearc.angle-separation"), 20);
         // @formatter:on
     }
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/customurl/ChooseURLAction.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/customurl/ChooseURLAction.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/customurl/ChooseURLAction.java	(revision 33676)
@@ -87,5 +87,5 @@
         if (dialog.getValue() == 1 && idx >= 0) {
             URLList.select(vals[idx]);
-            Main.pref.put("utilsplugin2.askurl", check1.isSelected());
+            Main.pref.putBoolean("utilsplugin2.askurl", check1.isSelected());
         }
     }
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/customurl/URLList.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/customurl/URLList.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/customurl/URLList.java	(revision 33676)
@@ -47,5 +47,5 @@
         items.add("Browse element [demo, =Ctrl-Shift-I]");
         items.add("https://www.openstreetmap.org/{#type}/{#id}");
-        Main.pref.putCollection("utilsplugin2.urlHistory", items);
+        Main.pref.putList("utilsplugin2.urlHistory", items);
         Main.pref.put("utilsplugin2.customurl", items.get(9));
         return items;
@@ -53,8 +53,8 @@
 
     public static List<String> getURLList() {
-        List<String> items = (List<String>) Main.pref.getCollection("utilsplugin2.urlHistory");
+        List<String> items = Main.pref.getList("utilsplugin2.urlHistory");
         if (items == null || items.isEmpty()) {
             resetURLList();
-            items = (List<String>) Main.pref.getCollection("utilsplugin2.urlHistory");
+            items = Main.pref.getList("utilsplugin2.urlHistory");
         }
         return items;
@@ -62,5 +62,5 @@
 
     public static void updateURLList(List<String> lst) {
-        Main.pref.putCollection("utilsplugin2.urlHistory", lst);
+        Main.pref.putList("utilsplugin2.urlHistory", lst);
         try {
             Main.pref.save();
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/latlon/LatLonAction.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/latlon/LatLonAction.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/latlon/LatLonAction.java	(revision 33676)
@@ -16,4 +16,5 @@
 import org.openstreetmap.josm.command.SequenceCommand;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
@@ -62,9 +63,10 @@
         // first we create all the nodes, then we do extra stuff based on what geometry type we need.
         LinkedList<Node> nodes = new LinkedList<>();
+        DataSet ds = getLayerManager().getEditDataSet();
 
         for (LatLon ll : coordinates) {
             Node nnew = new Node(ll);
             nodes.add(nnew);
-            cmds.add(new AddCommand(nnew));
+            cmds.add(new AddCommand(ds, nnew));
         }
 
@@ -74,10 +76,10 @@
             Way wnew = new Way();
             wnew.setNodes(nodes);
-            cmds.add(new AddCommand(wnew));
+            cmds.add(new AddCommand(ds, wnew));
         } else if ("area".equals(type)) {
             nodes.add(nodes.get(0)); // this is needed to close the way.
             Way wnew = new Way();
             wnew.setNodes(nodes);
-            cmds.add(new AddCommand(wnew));
+            cmds.add(new AddCommand(ds, wnew));
         }
         MainApplication.undoRedo.add(new SequenceCommand(tr("Lat Lon tool"), cmds));
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/latlon/LatLonDialog.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/latlon/LatLonDialog.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/latlon/LatLonDialog.java	(revision 33676)
@@ -33,6 +33,8 @@
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.data.coor.CoordinateFormat;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.coor.conversion.CoordinateFormatManager;
+import org.openstreetmap.josm.data.coor.conversion.ICoordinateFormat;
+import org.openstreetmap.josm.data.coor.conversion.LatLonParser;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.util.WindowGeometry;
@@ -58,8 +60,8 @@
     private static final String SEC = "\u2033";
 
-    private static final char N_TR = LatLon.NORTH.charAt(0);
-    private static final char S_TR = LatLon.SOUTH.charAt(0);
-    private static final char E_TR = LatLon.EAST.charAt(0);
-    private static final char W_TR = LatLon.WEST.charAt(0);
+    private static final char N_TR = LatLonParser.NORTH.charAt(0);
+    private static final char S_TR = LatLonParser.SOUTH.charAt(0);
+    private static final char E_TR = LatLonParser.EAST.charAt(0);
+    private static final char W_TR = LatLonParser.WEST.charAt(0);
 
     private static final Pattern p = Pattern.compile(
@@ -179,7 +181,7 @@
         this.latLonCoordinates = ll;
         String text = "";
+        ICoordinateFormat format = CoordinateFormatManager.getDefaultFormat();
         for (LatLon latlon : ll) {
-            text = text + latlon.latToString(CoordinateFormat.getDefaultFormat())
-            + " " + latlon.lonToString(CoordinateFormat.getDefaultFormat()) + "\n";
+            text = text + format.latToString(latlon) + " " + format.lonToString(latlon) + "\n";
         }
         taLatLon.setText(text);
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/multitagger/MultiTagDialog.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/multitagger/MultiTagDialog.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/multitagger/MultiTagDialog.java	(revision 33676)
@@ -151,5 +151,5 @@
     private void loadHistory() {
         List<String> cmtHistory = new LinkedList<>(
-                Main.pref.getCollection(HISTORY_KEY, Arrays.asList(defaultHistory)));
+                Main.pref.getList(HISTORY_KEY, Arrays.asList(defaultHistory)));
         Collections.reverse(cmtHistory);
         cbTagSet.setPossibleItems(cmtHistory);
@@ -213,5 +213,5 @@
     private void initAutocompletion() {
         OsmDataLayer l = MainApplication.getLayerManager().getEditLayer();
-        AutoCompletionManager autocomplete = l.data.getAutoCompletionManager();
+        AutoCompletionManager autocomplete = AutoCompletionManager.of(l.data);
         for (int i = 0; i < tableModel.mainTags.length; i++) {
             if (tableModel.isSpecialTag[i]) continue;
@@ -303,5 +303,5 @@
                 history = Arrays.asList(defaultHistory);
             }
-            Main.pref.putCollection(HISTORY_KEY, history);
+            Main.pref.putList(HISTORY_KEY, history);
             loadHistory();
         }
@@ -336,5 +336,5 @@
             oldTags = s;
             cbTagSet.addCurrentItemToHistory();
-            Main.pref.putCollection(HISTORY_KEY, cbTagSet.getHistory());
+            Main.pref.putList(HISTORY_KEY, cbTagSet.getHistory());
             specifyTagSet(s);
         }
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/replacegeometry/ReplaceGeometryUtils.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/replacegeometry/ReplaceGeometryUtils.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/replacegeometry/ReplaceGeometryUtils.java	(revision 33676)
@@ -112,5 +112,5 @@
         // FIXME: handle different layers
         List<Command> commands = new ArrayList<>();
-        Command c = MergeNodesAction.mergeNodes(MainApplication.getLayerManager().getEditLayer(),
+        Command c = MergeNodesAction.mergeNodes(
             Arrays.asList(subjectNode, referenceNode), referenceNode);
         if (c == null) {
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/search/UsedInRelationsMatch.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/search/UsedInRelationsMatch.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/search/UsedInRelationsMatch.java	(revision 33676)
@@ -4,12 +4,11 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import org.openstreetmap.josm.data.osm.Changeset;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.search.PushbackTokenizer;
 import org.openstreetmap.josm.data.osm.search.SearchParseError;
-import org.openstreetmap.josm.data.osm.search.PushbackTokenizer;
-import org.openstreetmap.josm.data.osm.visitor.Visitor;
+import org.openstreetmap.josm.data.osm.visitor.OsmPrimitiveVisitor;
 
 /**
@@ -25,5 +24,5 @@
     }
 
-    private static class RelationCounter implements Visitor {
+    private static class RelationCounter implements OsmPrimitiveVisitor {
         int count;
         @Override
@@ -40,9 +39,4 @@
         public void visit(Relation r) {
             count++;
-        }
-
-        @Override
-        public void visit(Changeset cs) {
-            // Do nothing
         }
     }
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/search/UsedInWaysMatch.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/search/UsedInWaysMatch.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/search/UsedInWaysMatch.java	(revision 33676)
@@ -4,12 +4,11 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import org.openstreetmap.josm.data.osm.Changeset;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.search.PushbackTokenizer;
 import org.openstreetmap.josm.data.osm.search.SearchParseError;
-import org.openstreetmap.josm.data.osm.search.PushbackTokenizer;
-import org.openstreetmap.josm.data.osm.visitor.Visitor;
+import org.openstreetmap.josm.data.osm.visitor.OsmPrimitiveVisitor;
 
 /**
@@ -25,5 +24,5 @@
     }
 
-    private static class WayCounter implements Visitor {
+    private static class WayCounter implements OsmPrimitiveVisitor {
         int count;
         @Override
@@ -39,9 +38,4 @@
         @Override
         public void visit(Relation r) {
-            // Do nothing
-        }
-
-        @Override
-        public void visit(Changeset cs) {
             // Do nothing
         }
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/NodeWayUtils.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/NodeWayUtils.java	(revision 33579)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/NodeWayUtils.java	(revision 33676)
@@ -32,7 +32,7 @@
 public final class NodeWayUtils {
 
-    static final int maxLevel = Main.pref.getInteger("selection.maxrecursion", 15);
-    static final int maxWays = Main.pref.getInteger("selection.maxfoundways", 2000);
-    static final int maxWays1 = Main.pref.getInteger("selection.maxfoundways.intersection", 500);
+    static final int maxLevel = Main.pref.getInt("selection.maxrecursion", 15);
+    static final int maxWays = Main.pref.getInt("selection.maxfoundways", 2000);
+    static final int maxWays1 = Main.pref.getInt("selection.maxfoundways.intersection", 500);
 
     private NodeWayUtils() {
