Index: /applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/UtilsPlugin2.java
===================================================================
--- /applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/UtilsPlugin2.java	(revision 34816)
+++ /applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/UtilsPlugin2.java	(revision 34817)
@@ -3,5 +3,4 @@
 
 import javax.swing.JMenu;
-import javax.swing.JMenuItem;
 
 import org.openstreetmap.josm.data.osm.search.SearchCompiler;
@@ -55,41 +54,4 @@
     private static UtilsPlugin2 instance;
 
-    JMenuItem copyTags;
-
-    JMenuItem unglueRelation;
-    JMenuItem symmetry;
-    JMenuItem addIntersections;
-    JMenuItem splitObject;
-    JMenuItem selectWayNodes;
-    JMenuItem adjNodes;
-    JMenuItem unsNodes;
-    JMenuItem midNodes;
-    JMenuItem adjWays;
-    JMenuItem adjWaysAll;
-    JMenuItem intWays;
-    JMenuItem intWaysR;
-    JMenuItem allInside;
-    JMenuItem undoSelection;
-    JMenuItem extractPoint;
-    JMenuItem wiki;
-    JMenuItem latlon;
-    JMenuItem multiTag;
-
-    JMenuItem replaceGeometry;
-    JMenuItem replaceMembership;
-    JMenuItem tagBuffer;
-    JMenuItem sourceTag;
-    JMenuItem pasteRelations;
-    JMenuItem alignWayNodes;
-    JMenuItem splitOnIntersections;
-    JMenuItem selModifiedNodes;
-    JMenuItem selModifiedWays;
-    JMenuItem selectHighway;
-    JMenuItem selectAreaBoundary;
-
-    JMenuItem selectURL;
-
-    JMenuItem drawArc;
-
     public UtilsPlugin2(PluginInformation info) {
         super(info);
@@ -101,42 +63,44 @@
         JMenu selectionMenu = MainApplication.getMenu().selectionMenu;
 
-        copyTags = MainMenu.addAfter(editMenu, new CopyTagsAction(), false, MainApplication.getMenu().copy);
+        MainMenu.addAfter(editMenu, new CopyTagsAction(), false, MainApplication.getMenu().copy);
 
-        addIntersections = MainMenu.add(toolsMenu, new AddIntersectionsAction());
-        splitObject = MainMenu.add(toolsMenu, new SplitObjectAction());
-        alignWayNodes = MainMenu.add(toolsMenu, new AlignWayNodesAction());
-        symmetry = MainMenu.add(toolsMenu, new SymmetryAction());
-        splitOnIntersections = MainMenu.add(toolsMenu, new SplitOnIntersectionsAction());
-        unglueRelation = MainMenu.add(toolsMenu, new UnGlueRelationAction());
+        MainMenu.add(toolsMenu, new AddIntersectionsAction());
+        MainMenu.add(toolsMenu, new SplitObjectAction());
+        MainMenu.add(toolsMenu, new AlignWayNodesAction());
+        MainMenu.add(toolsMenu, new SymmetryAction());
+        MainMenu.add(toolsMenu, new SplitOnIntersectionsAction());
+        MainMenu.add(toolsMenu, new UnGlueRelationAction());
+
         toolsMenu.addSeparator();
-        replaceGeometry = MainMenu.add(toolsMenu, new ReplaceGeometryAction());
-        replaceMembership = MainMenu.add(toolsMenu, new ReplaceMembershipAction());
-        extractPoint = MainMenu.add(toolsMenu, new ExtractPointAction());
-        tagBuffer = MainMenu.add(toolsMenu, new TagBufferAction());
-        sourceTag = MainMenu.add(toolsMenu, new TagSourceAction());
-        pasteRelations = MainMenu.add(toolsMenu, new PasteRelationsAction());
-        wiki = MainMenu.add(dataMenu, new OpenPageAction());
-        latlon = MainMenu.add(toolsMenu, new LatLonAction());
-        drawArc = MainMenu.add(toolsMenu, new CurveAction());
+
+        MainMenu.add(toolsMenu, new ReplaceGeometryAction());
+        MainMenu.add(toolsMenu, new ReplaceMembershipAction());
+        MainMenu.add(toolsMenu, new ExtractPointAction());
+        MainMenu.add(toolsMenu, new TagBufferAction());
+        MainMenu.add(toolsMenu, new TagSourceAction());
+        MainMenu.add(toolsMenu, new PasteRelationsAction());
+        MainMenu.add(dataMenu, new OpenPageAction());
+        MainMenu.add(toolsMenu, new LatLonAction());
+        MainMenu.add(toolsMenu, new CurveAction());
 
         selectionMenu.addSeparator();
 
-        selectWayNodes = MainMenu.add(selectionMenu, new SelectWayNodesAction());
-        adjNodes = MainMenu.add(selectionMenu, new AdjacentNodesAction());
-        unsNodes = MainMenu.add(selectionMenu, new UnselectNodesAction());
-        midNodes = MainMenu.add(selectionMenu, new MiddleNodesAction());
-        adjWays = MainMenu.add(selectionMenu, new AdjacentWaysAction());
-        adjWaysAll = MainMenu.add(selectionMenu, new ConnectedWaysAction());
-        intWays = MainMenu.add(selectionMenu, new IntersectedWaysAction());
-        intWaysR = MainMenu.add(selectionMenu, new IntersectedWaysRecursiveAction());
-        allInside = MainMenu.add(selectionMenu, new SelectAllInsideAction());
-        selModifiedNodes = MainMenu.add(selectionMenu, new SelectModNodesAction());
-        selModifiedWays = MainMenu.add(selectionMenu, new SelectModWaysAction());
-        undoSelection = MainMenu.add(selectionMenu, new UndoSelectionAction());
-        selectHighway = MainMenu.add(selectionMenu, new SelectHighwayAction());
-        selectAreaBoundary = MainMenu.add(selectionMenu, new SelectBoundaryAction());
+        MainMenu.add(selectionMenu, new SelectWayNodesAction());
+        MainMenu.add(selectionMenu, new AdjacentNodesAction());
+        MainMenu.add(selectionMenu, new UnselectNodesAction());
+        MainMenu.add(selectionMenu, new MiddleNodesAction());
+        MainMenu.add(selectionMenu, new AdjacentWaysAction());
+        MainMenu.add(selectionMenu, new ConnectedWaysAction());
+        MainMenu.add(selectionMenu, new IntersectedWaysAction());
+        MainMenu.add(selectionMenu, new IntersectedWaysRecursiveAction());
+        MainMenu.add(selectionMenu, new SelectAllInsideAction());
+        MainMenu.add(selectionMenu, new SelectModNodesAction());
+        MainMenu.add(selectionMenu, new SelectModWaysAction());
+        MainMenu.add(selectionMenu, new UndoSelectionAction());
+        MainMenu.add(selectionMenu, new SelectHighwayAction());
+        MainMenu.add(selectionMenu, new SelectBoundaryAction());
 
-        selectURL = MainMenu.add(dataMenu, new ChooseURLAction());
-        multiTag = MainMenu.add(dataMenu, new MultiTagAction());
+        MainMenu.add(dataMenu, new ChooseURLAction());
+        MainMenu.add(dataMenu, new MultiTagAction());
 
         // register search operators
@@ -147,35 +111,4 @@
     @Override
     public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {
-        boolean enabled = newFrame != null;
-        enabled = false;
-        unglueRelation.setEnabled(enabled);
-        addIntersections.setEnabled(enabled);
-        splitObject.setEnabled(enabled);
-
-        replaceGeometry.setEnabled(enabled);
-        replaceMembership.setEnabled(enabled);
-        tagBuffer.setEnabled(enabled);
-        sourceTag.setEnabled(enabled);
-        pasteRelations.setEnabled(enabled);
-        alignWayNodes.setEnabled(enabled);
-        splitOnIntersections.setEnabled(enabled);
-        wiki.setEnabled(enabled);
-
-        selectWayNodes.setEnabled(enabled);
-        adjNodes.setEnabled(enabled);
-        unsNodes.setEnabled(enabled);
-        midNodes.setEnabled(enabled);
-        adjWays.setEnabled(enabled);
-        adjWaysAll.setEnabled(enabled);
-        intWays.setEnabled(enabled);
-        intWaysR.setEnabled(enabled);
-        selModifiedNodes.setEnabled(enabled);
-        selModifiedWays.setEnabled(enabled);
-        undoSelection.setEnabled(enabled);
-        selectURL.setEnabled(enabled);
-        allInside.setEnabled(enabled);
-
-        drawArc.setEnabled(enabled);
-        multiTag.setEnabled(enabled);
     }
 
Index: /applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/PasteRelationsAction.java
===================================================================
--- /applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/PasteRelationsAction.java	(revision 34816)
+++ /applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/PasteRelationsAction.java	(revision 34817)
@@ -14,4 +14,5 @@
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 
 import org.openstreetmap.josm.actions.JosmAction;
@@ -79,10 +80,11 @@
 
         List<Command> commands = new ArrayList<>();
-        for (Relation rel : relations.keySet()) {
+        for (Entry<Relation, String> entry : relations.entrySet()) {
+        	Relation rel = entry.getKey();
             Relation r = new Relation(rel);
             boolean changed = false;
             for (OsmPrimitive p : selection) {
                 if (!r.getMemberPrimitives().contains(p) && !r.equals(p)) {
-                    String role = relations.get(rel);
+                    String role = entry.getValue();
                     if ("associatedStreet".equals(r.get("type"))) {
                         if (p.get("highway") != null) {
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 34816)
+++ /applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/curves/CircleArcMaker.java	(revision 34817)
@@ -131,5 +131,5 @@
         int i = 1;
         for (EastNorth p : slice(points, 1, -2)) {
-            if (i == p2Index.value) {
+            if (p2Index.value != null && i == p2Index.value) {
                 Node n2new = new Node(n2);
                 n2new.setEastNorth(p);
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 34816)
+++ /applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/NodeWayUtils.java	(revision 34817)
@@ -410,5 +410,5 @@
         int n = getRayIntersectionsCount(point, polygonPoints);
         if (n < 0) return true; // we are near node or near edge
-        return (n % 2 == 1);
+        return (n % 2 != 0);
     }
 
