Index: /applications/editors/josm/plugins/livegps/livegps/LiveGpsLayer.java
===================================================================
--- /applications/editors/josm/plugins/livegps/livegps/LiveGpsLayer.java	(revision 6159)
+++ /applications/editors/josm/plugins/livegps/livegps/LiveGpsLayer.java	(revision 6160)
@@ -13,14 +13,19 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.gpx.GpxData;
+import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.layer.GpxLayer;
 import org.openstreetmap.josm.gui.layer.RawGpsLayer;
 import org.openstreetmap.josm.tools.ColorHelper;
 
-public class LiveGpsLayer extends RawGpsLayer implements PropertyChangeListener {
+public class LiveGpsLayer extends GpxLayer implements PropertyChangeListener {
     public static final String LAYER_NAME = "LiveGPS layer";
     public static final String KEY_LIVEGPS_COLOR ="color.livegps.position";
 	LatLon lastPos;
-	GpsPoint lastPoint;
-	Collection<GpsPoint> trackBeingWritten;
+	WayPoint lastPoint;
+	GpxTrack trackBeingWritten;
+	Collection<WayPoint> trackSegment;
 	float speed;
 	float course;
@@ -30,16 +35,12 @@
 	private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
 	
-	public LiveGpsLayer(Collection<Collection<GpsPoint>> data)
+	public LiveGpsLayer(GpxData data)
 	{
-		super (false, data, LAYER_NAME, null);
-		if (data.isEmpty())
-		{
-			data.add(new ArrayList<GpsPoint>());
-		}
-		// use last track in collection:
-		for (Collection<GpsPoint> track : data) { 
-		    trackBeingWritten = track;
-		}
-		//lbl = new JLabel();
+		super (data, LAYER_NAME);
+		trackBeingWritten = new GpxTrack();
+		trackBeingWritten.attr.put("desc", "josm live gps");
+		trackSegment = new ArrayList<WayPoint>();
+		trackBeingWritten.trackSegs.add(trackSegment);
+		data.tracks.add(trackBeingWritten);
 	}
 	
@@ -55,9 +56,10 @@
 			
 		lastPos = thisPos;
-		lastPoint = new GpsPoint (thisPos, dateFormat.format(new Date()));
+		lastPoint = new WayPoint(thisPos);
+		lastPoint.attr.put("time", dateFormat.format(new Date()));
 		// synchronize when adding data, as otherwise the autosave action
 		// needs concurrent access and this results in an exception!
 		synchronized (LiveGpsLock.class) {
-		    trackBeingWritten.add(lastPoint);            
+		    trackSegment.add(lastPoint);            
         }
 		if (autocenter) {
