Index: src/org/openstreetmap/josm/gui/ImageProvider.java
===================================================================
--- src/org/openstreetmap/josm/gui/ImageProvider.java	(revision 21)
+++ src/org/openstreetmap/josm/gui/ImageProvider.java	(revision 22)
@@ -25,5 +25,5 @@
 	 * @author imi
 	 */
-	public enum OverlayPosition {NORTHWEST, NORTHEAST, SOUTHWEST, SOUTHEAST};
+	public enum OverlayPosition {NORTHWEST, NORTHEAST, SOUTHWEST, SOUTHEAST}
 	
 	/**
Index: src/org/openstreetmap/josm/gui/MapStatus.java
===================================================================
--- src/org/openstreetmap/josm/gui/MapStatus.java	(revision 21)
+++ src/org/openstreetmap/josm/gui/MapStatus.java	(revision 22)
@@ -47,9 +47,9 @@
 	 * The position of the mouse cursor.
 	 */
-	private JTextField positionText = new JTextField("-000.00000000000000 -000.00000000000000".length());
+	JTextField positionText = new JTextField("-000.00000000000000 -000.00000000000000".length());
 	/**
 	 * The field holding the name of the object under the mouse.
 	 */
-	private JTextField nameText = new JTextField(30);
+	JTextField nameText = new JTextField(30);
 
 	/**
@@ -147,5 +147,5 @@
 	 * The last sent mouse movement event.
 	 */
-	private MouseState mouseState = new MouseState();
+	MouseState mouseState = new MouseState();
 	
 	/**
Index: src/org/openstreetmap/josm/gui/MapView.java
===================================================================
--- src/org/openstreetmap/josm/gui/MapView.java	(revision 21)
+++ src/org/openstreetmap/josm/gui/MapView.java	(revision 22)
@@ -32,6 +32,4 @@
  * provide the MapMode's enough capabilities to operate. 
  * 
- * MapView holds the map data, organize it, convert it, provide access to it.
- * 
  * MapView hold meta-data about the data set currently displayed, as scale level,
  * center point viewed, what scrolling mode or editing mode is selected or with
@@ -87,7 +85,4 @@
 	 */
 	public MapView(Layer layer) {
-		if (layer.dataSet == null)
-			throw new IllegalArgumentException("Initial layer must have a dataset.");
-
 		addComponentListener(new ComponentAdapter(){
 			@Override
@@ -118,5 +113,5 @@
 			// initialize the projection if it was the first layer
 			if (layers.size() == 1)
-				Main.pref.getProjection().init(layer.dataSet);
+				Main.pref.getProjection().init();
 			
 			// initialize the dataset in the new layer
@@ -231,9 +226,6 @@
 		OsmPrimitive minPrimitive = null;
 
-		// calculate the object based on the current active dataset.
-		DataSet ds = getActiveDataSet();
-		
 		// nodes
-		for (Node n : ds.nodes) {
+		for (Node n : Main.main.ds.nodes) {
 			Point sp = getScreenPoint(n.coor);
 			double dist = p.distanceSq(sp);
@@ -247,5 +239,5 @@
 		
 		// pending line segments
-		for (LineSegment ls : ds.pendingLineSegments()) {
+		for (LineSegment ls : Main.main.ds.pendingLineSegments()) {
 			Point A = getScreenPoint(ls.getStart().coor);
 			Point B = getScreenPoint(ls.getEnd().coor);
@@ -262,5 +254,5 @@
 		// tracks & line segments
 		minDistanceSq = Double.MAX_VALUE;
-		for (Track t : ds.tracks()) {
+		for (Track t : Main.main.ds.tracks()) {
 			for (LineSegment ls : t.segments()) {
 				Point A = getScreenPoint(ls.getStart().coor);
@@ -375,19 +367,4 @@
 	
 	/**
-	 * Return the dataSet for the current selected layer. If the active layer
-	 * does not have a dataset, return the DataSet from the next layer a.s.o.
-	 *  
-	 * @return The DataSet of the current active layer.
-	 */
-	public DataSet getActiveDataSet() {
-		if (activeLayer.dataSet != null)
-			return activeLayer.dataSet;
-		for (Layer l : layers)
-			if (l.dataSet != null)
-				return l.dataSet;
-		throw new IllegalStateException("No dataset found.");
-	}
-
-	/**
 	 * Change to the new projection. Recalculate the dataset and zoom, if autoZoom
 	 * is active.
@@ -422,5 +399,5 @@
 				h = 20;
 			
-			Bounds bounds = getActiveDataSet().getBoundsXY();
+			Bounds bounds = Main.main.ds.getBoundsXY();
 			
 			boolean oldAutoScale = autoScale;
Index: src/org/openstreetmap/josm/gui/PreferenceDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/PreferenceDialog.java	(revision 21)
+++ src/org/openstreetmap/josm/gui/PreferenceDialog.java	(revision 22)
@@ -91,13 +91,13 @@
 	 * Indicate, that the application has to be restarted for the settings to take effect.
 	 */
-	private boolean requiresRestart = false;
+	boolean requiresRestart = false;
 	/**
 	 * ComboBox with all look and feels.
 	 */
-	private JComboBox lafCombo = new JComboBox(UIManager.getInstalledLookAndFeels());
+	JComboBox lafCombo = new JComboBox(UIManager.getInstalledLookAndFeels());
 	/**
 	 * Combobox with all projections available
 	 */
-	private JComboBox projectionCombo = new JComboBox(Preferences.allProjections.clone());
+	JComboBox projectionCombo = new JComboBox(Preferences.allProjections.clone());
 	/**
 	 * The main tab panel.
@@ -108,25 +108,25 @@
 	 * Editfield for the Base url to the REST API from OSM. 
 	 */
-	private JTextField osmDataServer = new JTextField(20);
+	JTextField osmDataServer = new JTextField(20);
 	/**
 	 * Editfield for the username to the OSM account.
 	 */
-	private JTextField osmDataUsername = new JTextField(20);
+	JTextField osmDataUsername = new JTextField(20);
 	/**
 	 * Passwordfield for the userpassword of the REST API.
 	 */
-	private JPasswordField osmDataPassword = new JPasswordField(20);
+	JPasswordField osmDataPassword = new JPasswordField(20);
 	/**
 	 * The checkbox stating whether nodes should be merged together.
 	 */
-	private JCheckBox drawRawGpsLines = new JCheckBox("Draw lines between raw gps points.");
+	JCheckBox drawRawGpsLines = new JCheckBox("Draw lines between raw gps points.");
 	/**
 	 * The checkbox stating whether raw gps lines should be forced.
 	 */
-	private JCheckBox forceRawGpsLines = new JCheckBox("Force lines if no line segments imported.");
+	JCheckBox forceRawGpsLines = new JCheckBox("Force lines if no line segments imported.");
 	/**
 	 * The checkbox stating whether nodes should be merged together.
 	 */
-	private JCheckBox mergeNodes = new JCheckBox("Merge nodes with equal latitude/longitude.");
+	JCheckBox mergeNodes = new JCheckBox("Merge nodes with equal latitude/longitude.");
 
 	/**
Index: src/org/openstreetmap/josm/gui/SelectionManager.java
===================================================================
--- src/org/openstreetmap/josm/gui/SelectionManager.java	(revision 21)
+++ src/org/openstreetmap/josm/gui/SelectionManager.java	(revision 22)
@@ -15,5 +15,5 @@
 import java.util.LinkedList;
 
-import org.openstreetmap.josm.command.DataSet;
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.LineSegment;
 import org.openstreetmap.josm.data.osm.Node;
@@ -272,6 +272,5 @@
 		} else {
 			// nodes
-			DataSet ds = mv.getActiveDataSet();
-			for (Node n : ds.nodes) {
+			for (Node n : Main.main.ds.nodes) {
 				if (r.contains(mv.getScreenPoint(n.coor)))
 					selection.add(n);
@@ -279,10 +278,10 @@
 			
 			// pending line segments
-			for (LineSegment ls : ds.pendingLineSegments())
+			for (LineSegment ls : Main.main.ds.pendingLineSegments())
 				if (rectangleContainLineSegment(r, alt, ls))
 					selection.add(ls);
 
 			// tracks
-			for (Track t : ds.tracks()) {
+			for (Track t : Main.main.ds.tracks()) {
 				boolean wholeTrackSelected = !t.segments().isEmpty();
 				for (LineSegment ls : t.segments())
Index: src/org/openstreetmap/josm/gui/dialogs/LayerList.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/LayerList.java	(revision 21)
+++ src/org/openstreetmap/josm/gui/dialogs/LayerList.java	(revision 22)
@@ -8,4 +8,5 @@
 import java.awt.event.ActionListener;
 import java.awt.event.KeyEvent;
+import java.io.IOException;
 import java.util.Collection;
 
@@ -16,4 +17,5 @@
 import javax.swing.JLabel;
 import javax.swing.JList;
+import javax.swing.JOptionPane;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
@@ -30,4 +32,5 @@
 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
 import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.io.OsmWriter;
 
 /**
@@ -42,13 +45,13 @@
 	 * The data model for the list component.
 	 */
-	private DefaultListModel model = new DefaultListModel();
+	DefaultListModel model = new DefaultListModel();
 	/**
 	 * The list component holding all layers.
 	 */
-	private JList layers = new JList(model);
+	JList layers = new JList(model);
 	/**
 	 * The invisible icon blended over invisible layers.
 	 */
-	private static final Icon invisible = ImageProvider.get("layer", "invisible");
+	static final Icon invisible = ImageProvider.get("layer", "invisible");
 
 	/**
@@ -69,5 +72,9 @@
 	 */
 	private JButton deleteButton = new JButton(ImageProvider.get("dialogs", "delete"));
-	
+	/**
+	 * Button for connecting disconnecting to the server.
+	 */
+	private JButton uploadButton = new JButton(ImageProvider.get("dialogs", "condiscon"));
+
 	/**
 	 * Create an layerlist and attach it to the given mapView.
@@ -89,5 +96,5 @@
 					icon = ImageProvider.overlay(icon, invisible, ImageProvider.OverlayPosition.SOUTHEAST);
 				label.setIcon(icon);
-				
+
 				DataSet ds = layer.dataSet;
 				if (ds != null) {
@@ -100,5 +107,5 @@
 
 		final MapView mapView = mapFrame.mapView;
-		
+
 		Collection<Layer> data = mapView.getAllLayers();
 		for (Layer l : data)
@@ -115,5 +122,5 @@
 		});
 		mapView.addLayerChangeListener(this);
-		
+
 		// Buttons
 		JPanel buttonPanel = new JPanel(new GridLayout(1, 5));
@@ -173,16 +180,30 @@
 		mergeButton.setToolTipText("Merge the selected layer into the layer directly below.");
 		mergeButton.addActionListener(new ActionListener(){
-				public void actionPerformed(ActionEvent e) {
-					Layer lFrom = (Layer)layers.getSelectedValue();
-					DataSet dsFrom = lFrom.dataSet;
-					Layer lTo = (Layer)model.get(layers.getSelectedIndex()+1);
-					DataSet dsTo = lTo.dataSet;
-					dsTo.mergeFrom(dsFrom, Main.pref.mergeNodes);
-					layers.setSelectedValue(lTo, true);
-					mapView.removeLayer(lFrom);
+			public void actionPerformed(ActionEvent e) {
+				Layer lFrom = (Layer)layers.getSelectedValue();
+				DataSet dsFrom = lFrom.dataSet;
+				Layer lTo = (Layer)model.get(layers.getSelectedIndex()+1);
+				DataSet dsTo = lTo.dataSet;
+				dsTo.mergeFrom(dsFrom, Main.pref.mergeNodes);
+				layers.setSelectedValue(lTo, true);
+				mapView.removeLayer(lFrom);
+			}
+		});		
+		buttonPanel.add(mergeButton);
+
+		uploadButton.setToolTipText("Upload changes to the server.");
+		uploadButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				OsmWriter con = new OsmWriter(Main.pref.osmDataServer, Main.main.commands);
+				try {
+					con.output();
+				} catch (IOException x) {
+					x.printStackTrace();
+					JOptionPane.showMessageDialog(Main.main, "Not all changes could be uploaded.");
 				}
-			});		
-		buttonPanel.add(mergeButton);
-
+			}
+		});
+		buttonPanel.add(uploadButton);
+		
 		add(buttonPanel, BorderLayout.SOUTH);
 		
@@ -193,5 +214,5 @@
 	 * Updates the state of the Buttons.
 	 */
-	private void updateButtonEnabled() {
+	void updateButtonEnabled() {
 		int sel = layers.getSelectedIndex();
 		Layer l = (Layer)layers.getSelectedValue();
Index: src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 21)
+++ src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 22)
@@ -17,5 +17,4 @@
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.command.DataSet;
 import org.openstreetmap.josm.data.SelectionChangedListener;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -23,7 +22,4 @@
 import org.openstreetmap.josm.gui.ImageProvider;
 import org.openstreetmap.josm.gui.MapFrame;
-import org.openstreetmap.josm.gui.MapView;
-import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
-import org.openstreetmap.josm.gui.layer.Layer;
 
 /**
@@ -34,5 +30,5 @@
  * @author imi
  */
-public class SelectionListDialog extends ToggleDialog implements SelectionChangedListener, LayerChangeListener {
+public class SelectionListDialog extends ToggleDialog implements SelectionChangedListener {
 
 	/**
@@ -44,8 +40,4 @@
 	 */
 	private JList displaylist = new JList(list);
-	/**
-	 * The dataset, all selections are part of.
-	 */
-	private final MapView mapView;
 	
 	/**
@@ -55,5 +47,4 @@
 	public SelectionListDialog(MapFrame mapFrame) {
 		super(mapFrame, "Current Selection", "Selection List", "selectionlist", KeyEvent.VK_E, "Open a selection list window.");
-		this.mapView = mapFrame.mapView;
 		setLayout(new BorderLayout());
 		setSize(300,400);
@@ -84,5 +75,5 @@
 		getContentPane().add(button, BorderLayout.SOUTH);
 
-		selectionChanged(mapView.getActiveDataSet().getSelected());
+		selectionChanged(Main.main.ds.getSelected());
 	}
 
@@ -90,10 +81,8 @@
 	public void setVisible(boolean b) {
 		if (b) {
-			mapView.addLayerChangeListener(this);
-			mapView.getActiveDataSet().addSelectionChangedListener(this);
-			selectionChanged(mapView.getActiveDataSet().getSelected());
+			Main.main.ds.addSelectionChangedListener(this);
+			selectionChanged(Main.main.ds.getSelected());
 		} else {
-			mapView.removeLayerChangeListener(this);
-			mapView.getActiveDataSet().removeSelectionChangedListener(this);
+			Main.main.ds.removeSelectionChangedListener(this);
 		}
 		super.setVisible(b);
@@ -118,28 +107,9 @@
 	 */
 	public void updateMap() {
-		DataSet ds = mapView.getActiveDataSet();
-		ds.clearSelection();
+		Main.main.ds.clearSelection();
 		for (int i = 0; i < list.getSize(); ++i)
 			if (displaylist.isSelectedIndex(i))
-				((OsmPrimitive)list.get(i)).setSelected(true, ds);
+				((OsmPrimitive)list.get(i)).setSelected(true);
 		Main.main.getMapFrame().repaint();
 	}
-
-	public void activeLayerChange(Layer oldLayer, Layer newLayer) {
-		DataSet ds = oldLayer.dataSet;
-		if (ds != null)
-			ds.removeSelectionChangedListener(this);
-		ds = newLayer.dataSet;
-		if (ds != null)
-			ds.addSelectionChangedListener(this);
-	}
-
-	/**
-	 * Does nothing. Only to satisfy LayerChangeListener
-	 */
-	public void layerAdded(Layer newLayer) {}
-	/**
-	 * Does nothing. Only to satisfy LayerChangeListener
-	 */
-	public void layerRemoved(Layer oldLayer) {}
 }
Index: src/org/openstreetmap/josm/gui/layer/Layer.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/Layer.java	(revision 21)
+++ src/org/openstreetmap/josm/gui/layer/Layer.java	(revision 22)
@@ -5,10 +5,5 @@
 import javax.swing.Icon;
 
-import org.openstreetmap.josm.command.DataSet;
-import org.openstreetmap.josm.data.osm.LineSegment;
-import org.openstreetmap.josm.data.osm.Node;
-import org.openstreetmap.josm.data.osm.Track;
 import org.openstreetmap.josm.gui.MapView;
-import org.openstreetmap.josm.gui.engine.Engine;
 
 /**
@@ -34,27 +29,13 @@
 	public boolean visible = true;
 	/**
-	 * The dataSet this layer operates on, if any. Not all layer may have a
-	 * dataset associated.
-	 */
-	public final DataSet dataSet;
-	/**
 	 * The name of this layer.
 	 */
 	public final String name;
-	/**
-	 * The engine used to draw the data.
-	 */
-	private final Engine engine;
 	
 	/**
 	 * Create the layer and fill in the necessary components.
-	 * @param dataSet The DataSet, this layer operates on. Can be <code>null</code>.
 	 */
-	public Layer(DataSet dataSet, Engine engine, String name) {
-		if (engine == null || name == null)
-			throw new NullPointerException();
-		this.dataSet = dataSet;
+	public Layer(String name) {
 		this.name = name;
-		this.engine = engine;
 	}
 
@@ -63,15 +44,5 @@
 	 * @param mv The object that can translate GeoPoints to screen coordinates.
 	 */
-	public final void paint(Graphics g, MapView mv) {
-		engine.init(g, mv);
-
-		for (Track t : dataSet.tracks())
-			engine.drawTrack(t);
-		for (LineSegment ls : dataSet.pendingLineSegments())
-			engine.drawPendingLineSegment(ls);
-		for (Node n : dataSet.nodes)
-			engine.drawNode(n);
-	}
-
+	abstract public void paint(Graphics g, MapView mv);
 	/**
 	 * Return a representative small image for this layer. The image must not 
Index: src/org/openstreetmap/josm/gui/layer/LayerFactory.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/LayerFactory.java	(revision 21)
+++ src/org/openstreetmap/josm/gui/layer/LayerFactory.java	(revision 22)
@@ -19,5 +19,5 @@
 	 */
 	public static Layer create(DataSet dataSet, String name, boolean rawGps) {
-		Layer layer = rawGps ? new RawGpsDataLayer(dataSet, name) : new OsmDataLayer(dataSet, name);
+		Layer layer = rawGps ? new RawGpsDataLayer(dataSet, name) : new OsmDataLayer(name);
 		return layer;
 	}
Index: src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 21)
+++ src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 22)
@@ -1,9 +1,21 @@
 package org.openstreetmap.josm.gui.layer;
+
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Point;
+import java.util.Collection;
+import java.util.HashSet;
 
 import javax.swing.Icon;
 
-import org.openstreetmap.josm.command.DataSet;
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.Key;
+import org.openstreetmap.josm.data.osm.LineSegment;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Track;
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
 import org.openstreetmap.josm.gui.ImageProvider;
-import org.openstreetmap.josm.gui.engine.SimpleEngine;
+import org.openstreetmap.josm.gui.MapView;
 
 /**
@@ -14,13 +26,30 @@
  * @author imi
  */
-public class OsmDataLayer extends Layer {
+public class OsmDataLayer extends Layer implements Visitor {
 
 	private static Icon icon;
+	private final static Color darkblue = new Color(0,0,128);
+	private final static Color darkgreen = new Color(0,128,0);
+
+	/**
+	 * The data behind this layer. A list of primitives which are also in Main.main.ds.
+	 */
+	private final Collection<OsmPrimitive> data;
+
+	/**
+	 * The mapview we are currently drawing on.
+	 */
+	private MapView mv;
+	/**
+	 * The graphic environment we are drawing with.
+	 */
+	private Graphics g;
 	
 	/**
 	 * Construct a OsmDataLayer.
 	 */
-	protected OsmDataLayer(DataSet dataSet, String name) {
-		super(dataSet, new SimpleEngine(), name);
+	protected OsmDataLayer(Collection<OsmPrimitive> data, String name) {
+		super(name);
+		this.data = data;
 	}
 
@@ -40,3 +69,88 @@
 		return true;
 	}
+
+	@Override
+	public void paint(Graphics g, MapView mv) {
+		this.mv = mv;
+		this.g = g;
+		for (OsmPrimitive osm : data)
+			osm.visit(this);
+	}
+
+	/**
+	 * Draw a small rectangle. 
+	 * 
+	 * - White if selected (as always)
+	 * - Yellow, if not used by any tracks or areas.
+	 * - Green, if only used by pending line segments.
+	 * - Darkblue, if used in tracks but are only as inbound node. Inbound are
+	 *   all nodes, that have only line segments of the same track and
+	 *   at least two different line segments attached.
+	 * - Red otherwise (means, this is a dead end or is part of more than
+	 *   one track).
+	 * 
+	 * @param n The node to draw.
+	 */
+	public void visit(Node n) {
+		if (n.isSelected()) {
+			drawNode(n, Color.WHITE); // selected
+			return;
+		}
+
+		Collection<LineSegment> lineSegments = n.getParentSegments();
+		if (lineSegments.isEmpty()) {
+			drawNode(n, Color.YELLOW); // single waypoint only
+			return;
+		}
+		
+		HashSet<Track> tracks = new HashSet<Track>();
+		for (LineSegment ls : lineSegments)
+			tracks.addAll(ls.getParents());
+		if (tracks.isEmpty()) {
+			drawNode(n, Color.GREEN); // pending line
+			return;
+		}
+		if (tracks.size() > 1) {
+			drawNode(n, Color.RED); // more than one track
+			return;
+		}
+		int segmentUsed = 0;
+		for (LineSegment ls : tracks.iterator().next().segments())
+			if (n == ls.getStart() || n == ls.getEnd())
+				++segmentUsed;
+		drawNode(n, segmentUsed > 1 ? darkblue : Color.RED);
+	}
+
+	public void visit(LineSegment ls) {
+		g.setColor(ls.isSelected() ? Color.WHITE : darkblue);
+		if (Main.main.ds.pendingLineSegments().contains(ls))
+			g.setColor(darkgreen);
+		Point p1 = mv.getScreenPoint(ls.getStart().coor);
+		Point p2 = mv.getScreenPoint(ls.getEnd().coor);
+		g.drawLine(p1.x, p1.y, p2.x, p2.y);
+	}
+
+	/**
+	 * Draw a darkblue line for all line segments.
+	 * @param t The track to draw.
+	 */
+	public void visit(Track t) {
+		for (LineSegment ls : t.segments())
+			ls.visit(this);
+	}
+
+	public void visit(Key k) {
+	}
+	
+	/**
+	 * Draw the node as small rectangle with the given color.
+	 *
+	 * @param n		The node to draw.
+	 * @param color The color of the node.
+	 */
+	private void drawNode(Node n, Color color) {
+		Point p = mv.getScreenPoint(n.coor);
+		g.setColor(color);
+		g.drawRect(p.x-1, p.y-1, 2, 2);
+	}
 }
Index: src/org/openstreetmap/josm/gui/layer/RawGpsDataLayer.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/RawGpsDataLayer.java	(revision 21)
+++ src/org/openstreetmap/josm/gui/layer/RawGpsDataLayer.java	(revision 22)
@@ -5,5 +5,4 @@
 import org.openstreetmap.josm.command.DataSet;
 import org.openstreetmap.josm.gui.ImageProvider;
-import org.openstreetmap.josm.gui.engine.RawGpsEngine;
 
 /**
@@ -18,5 +17,5 @@
 
 	protected RawGpsDataLayer(DataSet dataSet, String name) {
-		super(dataSet, new RawGpsEngine(), name);
+		super(name);
 	}
 
