Index: trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 1898)
@@ -12,5 +12,4 @@
 
 import javax.swing.JOptionPane;
-import javax.swing.text.html.Option;
 
 import org.openstreetmap.josm.Main;
@@ -96,9 +95,9 @@
             // Otherwise, two segments could be turned into same direction and intersection would fail.
             // Or changes of shape would be too serious.
-            for (int i1=0; i1 < way.nodes.size()-1; i1++) {
-                int i2 = (i1+1) % (way.nodes.size()-1);
-                int i3 = (i1+2) % (way.nodes.size()-1);
-                double angle1  =Math.abs(way.nodes.get(i1).getEastNorth().heading(way.nodes.get(i2).getEastNorth()));
-                double angle2 = Math.abs(way.nodes.get(i2).getEastNorth().heading(way.nodes.get(i3).getEastNorth()));
+            for (int i1=0; i1 < way.getNodesCount()-1; i1++) {
+                int i2 = (i1+1) % (way.getNodesCount()-1);
+                int i3 = (i1+2) % (way.getNodesCount()-1);
+                double angle1  =Math.abs(way.getNode(i1).getEastNorth().heading(way.getNode(i2).getEastNorth()));
+                double angle2 = Math.abs(way.getNode(i2).getEastNorth().heading(way.getNode(i3).getEastNorth()));
                 double delta = Math.abs(angle2 - angle1);
                 while(delta > Math.PI) {
@@ -162,10 +161,10 @@
 
             Way way = (Way)osm;
-            int nodes = way.nodes.size();
+            int nodes = way.getNodesCount();
             int sides = nodes - 1;
             // Copy necessary data into a more suitable data structure
             EastNorth en[] = new EastNorth[sides];
             for (int i=0; i < sides; i++) {
-                en[i] = new EastNorth(way.nodes.get(i).getEastNorth().east(), way.nodes.get(i).getEastNorth().north());
+                en[i] = new EastNorth(way.getNode(i).getEastNorth().east(), way.getNode(i).getEastNorth().north());
             }
 
@@ -178,6 +177,6 @@
                 double weights[] = new double[sides];
                 for (int i=0; i < sides; i++) {
-                    headings[i] = normalize_angle(way.nodes.get(i).getEastNorth().heading(way.nodes.get(i+1).getEastNorth()));
-                    weights[i] = way.nodes.get(i).getEastNorth().distance(way.nodes.get(i+1).getEastNorth());
+                    headings[i] = normalize_angle(way.getNode(i).getEastNorth().heading(way.getNode(i+1).getEastNorth()));
+                    weights[i] = way.getNode(i).getEastNorth().distance(way.getNode(i+1).getEastNorth());
                 }
 
@@ -270,5 +269,5 @@
                         B.north() + q * (A.north() - B.north()));
 
-                Node n = way.nodes.get(i2);
+                Node n = way.getNode(i2);
 
                 LatLon ill = Main.proj.eastNorth2latlon(intersection);
Index: trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 1898)
@@ -285,5 +285,5 @@
             }
             newWays.add(wayToAdd);
-            wayToAdd.nodes.addAll(chunkIt.next());
+            wayToAdd.setNodes(chunkIt.next());
             commandList.add(new AddCommand(wayToAdd));
             //Main.debug("wayToAdd: " + wayToAdd);
Index: trunk/src/org/openstreetmap/josm/actions/UpdateSelectionAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/UpdateSelectionAction.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/actions/UpdateSelectionAction.java	(revision 1898)
@@ -72,5 +72,5 @@
      *   the current dataset
      * @exception IllegalStateException thrown if there is no current dataset
-     * 
+     *
      */
     public void updatePrimitive(long id) throws IllegalStateException{
@@ -171,5 +171,5 @@
                 } else if (primitive instanceof Way) {
                     Way way = (Way)primitive;
-                    for (Node node: way.nodes) {
+                    for (Node node: way.getNodes()) {
                         if (node.id > 0) {
                             reader.append(node);
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 1898)
@@ -391,5 +391,5 @@
                     for (int i : is) {
                         segSet.add(
-                                Pair.sort(new Pair<Node,Node>(w.nodes.get(i), w.nodes.get(i+1))));
+                                Pair.sort(new Pair<Node,Node>(w.getNode(i), w.getNode(i+1))));
                     }
                     for (int i : is) {
@@ -478,5 +478,5 @@
                 if(way != null) {
                     int nodeCount=0;
-                    for (Node p : way.nodes)
+                    for (Node p : way.getNodes())
                         if(p.equals(n0)) {
                             nodeCount++;
@@ -503,5 +503,5 @@
 
                 // Connected to a node that's already in the way
-                if(way.nodes.contains(n)) {
+                if(way.getNodes().contains(n)) {
                     wayIsFinished = true;
                     selection.clear();
@@ -509,5 +509,5 @@
 
                 // Add new node to way
-                if (way.nodes.get(way.nodes.size() - 1) == n0) {
+                if (way.getNode(way.getNodesCount() - 1) == n0) {
                     way.addNode(n);
                 } else {
@@ -571,9 +571,9 @@
      */
     private boolean isSelfContainedWay(Way selectedWay, Node currentNode, Node targetNode) {
-        if(selectedWay != null && selectedWay.nodes != null) {
-            int posn0 = selectedWay.nodes.indexOf(currentNode);
+        if(selectedWay != null) {
+            int posn0 = selectedWay.getNodes().indexOf(currentNode);
             if( posn0 != -1 && // n0 is part of way
-                    (posn0 >= 1                          && targetNode.equals(selectedWay.nodes.get(posn0-1))) || // previous node
-                    (posn0 < selectedWay.nodes.size()-1) && targetNode.equals(selectedWay.nodes.get(posn0+1))) {  // next node
+                    (posn0 >= 1                             && targetNode.equals(selectedWay.getNode(posn0-1))) || // previous node
+                    (posn0 < selectedWay.getNodesCount()-1) && targetNode.equals(selectedWay.getNode(posn0+1))) {  // next node
                 getCurrentDataSet().setSelected(targetNode);
                 DataSet.fireSelectionChanged(getCurrentDataSet().getSelected());
@@ -714,6 +714,6 @@
             if (selectedWay.isFirstLastNode(lastUsedNode)) {
                 currentBaseNode = lastUsedNode;
-                if (lastUsedNode == selectedWay.nodes.get(selectedWay.nodes.size()-1) && selectedWay.nodes.size() > 1) {
-                    previousNode = selectedWay.nodes.get(selectedWay.nodes.size()-2);
+                if (lastUsedNode == selectedWay.getNode(selectedWay.getNodesCount()-1) && selectedWay.getNodesCount() > 1) {
+                    previousNode = selectedWay.getNode(selectedWay.getNodesCount()-2);
                 }
             }
@@ -721,5 +721,5 @@
             currentBaseNode = selectedNode;
         } else {
-            if (selectedNode == selectedWay.nodes.get(0) || selectedNode == selectedWay.nodes.get(selectedWay.nodes.size()-1)) {
+            if (selectedNode == selectedWay.getNode(0) || selectedNode == selectedWay.getNode(selectedWay.getNodesCount()-1)) {
                 currentBaseNode = selectedNode;
             }
@@ -763,9 +763,9 @@
         Way way = null;
         for (Way w : getCurrentDataSet().ways) {
-            if (w.deleted || w.incomplete || w.nodes.size() < 1) {
+            if (w.deleted || w.incomplete || w.getNodesCount() < 1) {
                 continue;
             }
-            Node firstNode = w.nodes.get(0);
-            Node lastNode = w.nodes.get(w.nodes.size() - 1);
+            Node firstNode = w.getNode(0);
+            Node lastNode = w.getNode(w.getNodesCount() - 1);
             if ((firstNode == n || lastNode == n) && (firstNode != lastNode)) {
                 if (way != null)
@@ -966,5 +966,5 @@
         if (getCurrentDataSet() != null && getCurrentDataSet().getSelectedWays().size() > 0 && !wayIsFinished && !alt) {
             Way w = (Way) getCurrentDataSet().getSelectedWays().iterator().next();
-            for (Node m : w.nodes) {
+            for (Node m : w.getNodes()) {
                 if (m.equals(mouseOnExistingNode) || mouseOnExistingWays.contains(w)) {
                     rv += " " + tr("Finish drawing.");
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 1898)
@@ -28,6 +28,6 @@
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.MapViewPaintable;
-import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -152,6 +152,6 @@
     public void paint(Graphics g, MapView mv) {
         if (selectedSegment != null) {
-            Node n1 = selectedSegment.way.nodes.get(selectedSegment.lowerIndex);
-            Node n2 = selectedSegment.way.nodes.get(selectedSegment.lowerIndex + 1);
+            Node n1 = selectedSegment.way.getNode(selectedSegment.lowerIndex);
+            Node n2 = selectedSegment.way.getNode(selectedSegment.lowerIndex + 1);
 
             EastNorth en1 = n1.getEastNorth();
@@ -233,6 +233,6 @@
         if (selectedSegment == null) return;
         if (mousePos.distance(initialMousePos) > 10) {
-            Node n1 = selectedSegment.way.nodes.get(selectedSegment.lowerIndex);
-            Node n2 = selectedSegment.way.nodes.get(selectedSegment.lowerIndex+1);
+            Node n1 = selectedSegment.way.getNode(selectedSegment.lowerIndex);
+            Node n2 = selectedSegment.way.getNode(selectedSegment.lowerIndex+1);
             EastNorth en3 = n2.getEastNorth().add(xoff, yoff);
             Node n3 = new Node(Main.proj.eastNorth2latlon(en3));
@@ -242,5 +242,5 @@
             wnew.addNode(selectedSegment.lowerIndex+1, n3);
             wnew.addNode(selectedSegment.lowerIndex+1, n4);
-            if (wnew.nodes.size() == 4) {
+            if (wnew.getNodesCount() == 4) {
                 wnew.addNode(n1);
             }
Index: trunk/src/org/openstreetmap/josm/command/DeleteCommand.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/DeleteCommand.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/command/DeleteCommand.java	(revision 1898)
@@ -67,5 +67,5 @@
      * Constructor for a single data item. Use the collection constructor to delete multiple
      * objects.
-     * 
+     *
      * @param layer the layer context for deleting this primitive
      * @param data the primitive to delete
@@ -79,5 +79,5 @@
      * Constructor for a collection of data to be deleted in the context of
      * a specific layer
-     * 
+     *
      * @param layer the layer context for deleting these primitives
      * @param data the primitives to delete
@@ -137,12 +137,12 @@
     /**
      * Delete the primitives and everything they reference.
-     * 
+     *
      * If a node is deleted, the node and all ways and relations the node is part of are deleted as
      * well.
-     * 
+     *
      * If a way is deleted, all relations the way is member of are also deleted.
-     * 
+     *
      * If a way is deleted, only the way and no nodes are deleted.
-     * 
+     *
      * @param selection The list of all object to be deleted.
      * @return command A command to perform the deletions, or null of there is nothing to delete.
@@ -204,5 +204,5 @@
                 continue;
             }
-            for (Node n : ((Way) osm).nodes) {
+            for (Node n : ((Way) osm).getNodes()) {
                 if (n.isTagged()) {
                     continue;
@@ -221,11 +221,11 @@
     /**
      * Try to delete all given primitives.
-     * 
+     *
      * If a node is used by a way, it's removed from that way. If a node or a way is used by a
      * relation, inform the user and do not delete.
-     * 
+     *
      * If this would cause ways with less than 2 nodes to be created, delete these ways instead. If
      * they are part of a relation, inform the user and do not delete.
-     * 
+     *
      * @param layer the {@see OsmDataLayer} in whose context a primitive the primitives are deleted
      * @param selection The objects to delete.
@@ -279,5 +279,5 @@
             Way wnew = new Way(w);
             wnew.removeNodes(primitivesToDelete);
-            if (wnew.nodes.size() < 2) {
+            if (wnew.getNodesCount() < 2) {
                 primitivesToDelete.add(w);
 
@@ -347,16 +347,16 @@
             }
             Way wnew = new Way(w);
-            ArrayList<Node> nodesToStrip = new ArrayList<Node>();
+            List<Node> nodesToKeep = new ArrayList<Node>();
             // lookup new nodes which have been added to the set of deleted
             // nodes ...
-            for (Node n : wnew.nodes) {
-                if (n.id == 0 && primitivesToDelete.contains(n)) {
-                    nodesToStrip.add(n);
+            for (Node n : wnew.getNodes()) {
+                if (n.id != 0 || !primitivesToDelete.contains(n)) {
+                    nodesToKeep.add(n);
                 }
             }
             // .. and remove them from the way
             //
-            wnew.nodes.removeAll(nodesToStrip);
-            if (!nodesToStrip.isEmpty()) {
+            wnew.setNodes(nodesToKeep);
+            if (nodesToKeep.size() < w.getNodesCount()) {
                 cmds.add(new ChangeCommand(w, wnew));
             }
@@ -373,6 +373,6 @@
         List<Node> n1 = new ArrayList<Node>(), n2 = new ArrayList<Node>();
 
-        n1.addAll(ws.way.nodes.subList(0, ws.lowerIndex + 1));
-        n2.addAll(ws.way.nodes.subList(ws.lowerIndex + 1, ws.way.nodes.size()));
+        n1.addAll(ws.way.getNodes().subList(0, ws.lowerIndex + 1));
+        n2.addAll(ws.way.getNodes().subList(ws.lowerIndex + 1, ws.way.getNodesCount()));
 
         if (n1.size() < 2 && n2.size() < 2)
@@ -380,16 +380,15 @@
 
         Way wnew = new Way(ws.way);
-        wnew.nodes.clear();
 
         if (n1.size() < 2) {
-            wnew.nodes.addAll(n2);
+            wnew.setNodes(n2);
             return new ChangeCommand(ws.way, wnew);
         } else if (n2.size() < 2) {
-            wnew.nodes.addAll(n1);
+            wnew.setNodes(n1);
             return new ChangeCommand(ws.way, wnew);
         } else {
             Collection<Command> cmds = new LinkedList<Command>();
 
-            wnew.nodes.addAll(n1);
+            wnew.setNodes(n1);
             cmds.add(new ChangeCommand(ws.way, wnew));
 
@@ -398,5 +397,5 @@
                 wnew2.keys = new HashMap<String, String>(wnew.keys);
             }
-            wnew2.nodes.addAll(n2);
+            wnew2.setNodes(n2);
             cmds.add(new AddCommand(wnew2));
 
@@ -408,5 +407,5 @@
      * Check whether user is about to delete data outside of the download area. Request confirmation
      * if he is.
-     * 
+     *
      * @param layer the layer in whose context data is deleted
      * @param primitivesToDelete the primitives to delete
Index: trunk/src/org/openstreetmap/josm/command/PurgePrimitivesCommand.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/PurgePrimitivesCommand.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/command/PurgePrimitivesCommand.java	(revision 1898)
@@ -190,7 +190,7 @@
                 // remember it on the "hive"
                 //
-                if (w.nodes.size() < 2) {
+                if (w.getNodesCount() < 2) {
                     System.out.println(tr("Warning: Purging way {0} because number of nodes dropped below 2. Current is {1}",
-                            w.id,w.nodes.size()));
+                            w.id,w.getNodesCount()));
                     if (!hive.contains(w)) {
                         hive.add(w);
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1898)
@@ -344,5 +344,5 @@
             int orderNumber = 0;
             lastN = null;
-            for(Node n : w.nodes)
+            for(Node n : w.getNodes())
             {
                 if(lastN != null)
@@ -429,6 +429,5 @@
             {
                 w = new Way(w);
-                w.nodes.clear();
-                w.nodes.addAll(n);
+                w.setNodes(n);
                 w.selected = selected;
             }
@@ -644,5 +643,5 @@
         } else {
             //System.out.println("From way heading towards via");
-            fromNode = fromWay.getNode(fromWay.nodes.size()-2);
+            fromNode = fromWay.getNode(fromWay.getNodesCount()-2);
         }
 
@@ -936,5 +935,5 @@
                     Polygon polygon = new Polygon();
 
-                    for (Node n : wInner.nodes)
+                    for (Node n : wInner.getNodes())
                     {
                         Point pInner = nc.getPoint(n);
@@ -943,5 +942,5 @@
                     if(!wInner.isClosed())
                     {
-                        Point pInner = nc.getPoint(wInner.nodes.get(0));
+                        Point pInner = nc.getPoint(wInner.getNode(0));
                         polygon.addPoint(pInner.x,pInner.y);
                     }
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/MergeSourceBuildingVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/MergeSourceBuildingVisitor.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/MergeSourceBuildingVisitor.java	(revision 1898)
@@ -4,5 +4,7 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -22,5 +24,5 @@
  * incomplete {@see OsmPrimitive}s in the "hull", if they are not themselves present in the
  * original collection.
- * 
+ *
  */
 public class MergeSourceBuildingVisitor extends AbstractVisitor {
@@ -33,8 +35,8 @@
      * the currently selected primitives in the dataset <code>selectionBase</code>,
      * i.e. from {@see DataSet#getSelected()}.
-     * 
+     *
      * @param selectionBase the dataset. Must not be null.
      * @exception IllegalArgumentException thrown if selectionBase is null
-     * 
+     *
      */
     public MergeSourceBuildingVisitor(DataSet selectionBase) throws IllegalArgumentException {
@@ -48,5 +50,5 @@
     /**
      * Remebers a node in the "hull"
-     * 
+     *
      * @param n the node
      */
@@ -60,5 +62,5 @@
     /**
      * remembers a way in the hull
-     * 
+     *
      * @param w the way
      */
@@ -67,8 +69,9 @@
             return;
         Way clone = new Way(w);
-        clone.nodes.clear();
-        for (Node n: w.nodes) {
-            clone.nodes.add((Node)mappedPrimitives.get(n));
-        }
+        List<Node> newNodes = new ArrayList<Node>();
+        for (Node n: w.getNodes()) {
+            newNodes.add((Node)mappedPrimitives.get(n));
+        }
+        clone.setNodes(newNodes);
         mappedPrimitives.put(w, clone);
     }
@@ -76,5 +79,5 @@
     /**
      * Remembers a relation in the hull
-     * 
+     *
      * @param r the relation
      */
@@ -160,5 +163,5 @@
         // remember all nodes this way refers to ...
         //
-        for (Node n: w.nodes) {
+        for (Node n: w.getNodes()) {
             if (! isAlreadyRemembered(n)) {
                 n.visit(this);
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java	(revision 1898)
@@ -319,5 +319,5 @@
         }
 
-        Iterator<Node> it = w.nodes.iterator();
+        Iterator<Node> it = w.getNodes().iterator();
         if (it.hasNext()) {
             Point lastP = nc.getPoint(it.next());
Index: trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 1898)
@@ -319,5 +319,5 @@
             Node lastN = null;
             int i = -2;
-            for (Node n : w.nodes) {
+            for (Node n : w.getNodes()) {
                 i++;
                 if (n.deleted || n.incomplete) {
@@ -437,5 +437,5 @@
             }
             Node lastN = null;
-            for (Node n : w.nodes) {
+            for (Node n : w.getNodes()) {
                 if (n.deleted || n.incomplete) {
                     continue;
Index: trunk/src/org/openstreetmap/josm/gui/SelectionManager.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/SelectionManager.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/gui/SelectionManager.java	(revision 1898)
@@ -286,5 +286,5 @@
             // ways
             for (Way w : nc.getCurrentDataSet().ways) {
-                if (w.deleted || w.nodes.isEmpty() || w.incomplete)
+                if (w.deleted || w.getNodesCount() == 0 || w.incomplete)
                         continue;
                 if (alt) {
Index: trunk/src/org/openstreetmap/josm/gui/conflict/nodes/NodeListMergeModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/nodes/NodeListMergeModel.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/nodes/NodeListMergeModel.java	(revision 1898)
@@ -23,5 +23,5 @@
      * Populates the model with the nodes in the two {@see Way}s <code>my</code> and
      * <code>their</code>.
-     * 
+     *
      * @param my  my way (i.e. the way in the local dataset)
      * @param their their way (i.e. the way in the server dataset)
@@ -37,8 +37,8 @@
         getMyEntries().clear();
         getTheirEntries().clear();
-        for (Node n : my.nodes) {
+        for (Node n : my.getNodes()) {
             getMyEntries().add(n);
         }
-        for (Node n : their.nodes) {
+        for (Node n : their.getNodes()) {
             getTheirEntries().add(n);
         }
@@ -55,5 +55,5 @@
     /**
      * Builds the command to resolve conflicts in the node list of a way
-     * 
+     *
      * @param my  my way. Must not be null.
      * @param their  their way. Must not be null
Index: trunk/src/org/openstreetmap/josm/gui/conflict/properties/PropertiesMergeModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/properties/PropertiesMergeModel.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/properties/PropertiesMergeModel.java	(revision 1898)
@@ -533,5 +533,5 @@
 
         HashMap<Long,OsmPrimitive> candidates = new HashMap<Long,OsmPrimitive>();
-        for (Node n : way.nodes) {
+        for (Node n : way.getNodes()) {
             if (n.id > 0 && ! candidates.values().contains(n)) {
                 candidates.put(n.id, n);
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 1898)
@@ -55,5 +55,5 @@
  * This dialog displays the {@see ConflictCollection} of the active {@see OsmDataLayer} in a toggle
  * dialog on the right of the main frame.
- * 
+ *
  */
 public final class ConflictDialog extends ToggleDialog implements LayerChangeListener, IConflictListener, SelectionChangedListener{
@@ -128,5 +128,5 @@
     /**
      * Launches a conflict resolution dialog for the first selected conflict
-     * 
+     *
      */
     private final void resolve() {
@@ -180,5 +180,5 @@
             public void visit(Way w) {
                 Node lastN = null;
-                for (Node n : w.nodes) {
+                for (Node n : w.getNodes()) {
                     if (lastN == null) {
                         lastN = n;
@@ -206,5 +206,5 @@
     /**
      * replies the conflict collection currently held by this dialog; may be null
-     * 
+     *
      * @return the conflict collection currently held by this dialog; may be null
      */
Index: trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 1898)
@@ -65,6 +65,4 @@
 import org.openstreetmap.josm.tools.ImageProvider;
 
-import sun.security.action.GetLongAction;
-
 /**
  * A layer holding data from a specific dataset.
@@ -321,5 +319,5 @@
      * Cleanup the layer after save to disk. Just marks the layer as unmodified.
      * Leaves the undo/redo stack unchanged.
-     * 
+     *
      */
     public void cleanupAfterSaveToDisk() {
@@ -470,5 +468,5 @@
 
             ArrayList<WayPoint> trkseg = null;
-            for (Node n : w.nodes) {
+            for (Node n : w.getNodes()) {
                 if (n.incomplete || n.deleted) {
                     trkseg = null;
Index: trunk/src/org/openstreetmap/josm/io/MultiFetchServerObjectReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/MultiFetchServerObjectReader.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/io/MultiFetchServerObjectReader.java	(revision 1898)
@@ -183,5 +183,5 @@
         if (way == null) return this;
         if (way.id == 0) return this;
-        for (Node node: way.nodes) {
+        for (Node node: way.getNodes()) {
             if (node.id > 0) {
                 remember(node.id, OsmPrimitiveType.NODE);
Index: trunk/src/org/openstreetmap/josm/io/OsmWriter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmWriter.java	(revision 1897)
+++ trunk/src/org/openstreetmap/josm/io/OsmWriter.java	(revision 1898)
@@ -117,5 +117,5 @@
         } else {
             out.println(">");
-            for (Node n : w.nodes) {
+            for (Node n : w.getNodes()) {
                 out.println("    <nd ref='"+getUsedId(n)+"' />");
             }
