Index: /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/ElevationProfilePlugin.java
===================================================================
--- /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/ElevationProfilePlugin.java	(revision 29949)
+++ /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/ElevationProfilePlugin.java	(revision 29950)
@@ -56,5 +56,6 @@
 	    createColorMaps();
 	    
-	    MainMenu.add(Main.main.menu.viewMenu, action, false, 0);
+	    // TODO: Disable this view as long as it is not stable
+	    //MainMenu.add(Main.main.menu.viewMenu, action, false, 0);
 	} catch (Exception e1) {
 	    System.err.println("Init of ElevationProfilePlugin failed: " + e1);
Index: /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/DefaultElevationProfileRenderer.java
===================================================================
--- /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/DefaultElevationProfileRenderer.java	(revision 29949)
+++ /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/DefaultElevationProfileRenderer.java	(revision 29950)
@@ -15,8 +15,10 @@
 package org.openstreetmap.josm.plugins.elevation.gui;
 
+import java.awt.BasicStroke;
 import java.awt.Color;
 import java.awt.GradientPaint;
 import java.awt.Graphics;
 import java.awt.Graphics2D;
+import java.awt.MultipleGradientPaint.CycleMethod;
 import java.awt.Point;
 import java.awt.RadialGradientPaint;
@@ -24,5 +26,5 @@
 import java.awt.RenderingHints;
 import java.awt.Shape;
-import java.awt.MultipleGradientPaint.CycleMethod;
+import java.awt.Stroke;
 import java.awt.geom.AffineTransform;
 import java.awt.geom.Point2D;
@@ -53,6 +55,5 @@
 	 */
 	private static final int BASIC_WPT_RADIUS = 1;
-	private static final int REGULAR_WPT_RADIUS = BASIC_WPT_RADIUS * 4;
-	private static final int BIG_WPT_RADIUS = BASIC_WPT_RADIUS * 8;
+	private static final int BIG_WPT_RADIUS = BASIC_WPT_RADIUS * 16;
 
 	// predefined colors
@@ -107,7 +108,7 @@
 			return Color.getHSBColor(0, 1.0f, 1.0f); // red
 		case ElevationGainLow:
-		    	return Color.getHSBColor(0.3f, 0.5f, 1.0f); // green with low sat
+		    	return Color.getHSBColor(0.3f, 0.7f, 1.0f); // green with low sat
 		case ElevationLossLow:
-			return Color.getHSBColor(0, 0.5f, 1.0f); // red with low sat
+			return Color.getHSBColor(0, 0.7f, 1.0f); // red with low sat
 		case FullHour:
 			return MARKER_POINT;
@@ -116,10 +117,9 @@
 		case MinElevation:
 			return LOW_COLOR;
-
 		case StartPoint:
 			return START_COLOR;
 		case EndPoint:
 			return END_POINT;
-		default:
+		default:		    
 		    break;
 		}
@@ -165,4 +165,45 @@
 		}
 	}
+	
+	/* (non-Javadoc)
+	 * @see org.openstreetmap.josm.plugins.elevation.gui.IElevationProfileRenderer#renderWayPoints(java.awt.Graphics, org.openstreetmap.josm.plugins.elevation.gpx.IElevationProfile, org.openstreetmap.josm.gui.MapView, org.openstreetmap.josm.data.gpx.WayPoint, org.openstreetmap.josm.data.gpx.WayPoint)
+	 */
+	@Override
+	public void renderLine(Graphics g, IElevationProfile profile,
+		MapView mv, WayPoint wpt1, WayPoint wpt2, ElevationWayPointKind kind) {
+	    
+	    	CheckParameterUtil.ensureParameterNotNull(g, "graphics");
+		CheckParameterUtil.ensureParameterNotNull(profile, "profile");
+		CheckParameterUtil.ensureParameterNotNull(mv, "map view");
+		
+		if (wpt1 == null || wpt2 == null) {
+			System.err.println(String.format(
+					"Cannot paint line: mv=%s, prof=%s, kind = %s", mv, profile, kind));			
+			return;
+		}
+		
+		// obtain and set color
+		g.setColor(getColorForWaypoint(profile, wpt2, kind));
+		
+		// transform to view
+		Point pnt1 = mv.getPoint(wpt1.getEastNorth());
+		Point pnt2 = mv.getPoint(wpt2.getEastNorth());
+		
+		// use thick line, if possible
+		if (g instanceof Graphics2D) {
+		    Graphics2D g2 = (Graphics2D) g;
+		    Stroke oldS = g2.getStroke();
+		    try {
+			g2.setStroke(new BasicStroke(3, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
+			g2.drawLine(pnt1.x, pnt1.y, pnt2.x, pnt2.y);
+		    } finally {
+			// must be restored; otherwise other layers may using this style, too 
+			g2.setStroke(oldS);
+		    }
+		} else {
+		    // only poor man's graphics
+		    g.drawLine(pnt1.x, pnt1.y, pnt2.x, pnt2.y);
+		}
+	}
 
 	/**
@@ -184,18 +225,6 @@
 
 		Color c = getColorForWaypoint(profile, wpt, kind);
-
-		if (c == null) {
-			System.err.println(String.format(
-					"Cannot determine color: mv=%s, prof=%s, wpt=%s", mv,
-					profile, wpt));
-		}
-
 		Point pnt = mv.getPoint(wpt.getEastNorth());
-		int rad = REGULAR_WPT_RADIUS;
-		int r2 = REGULAR_WPT_RADIUS / 2;
 		
-		g.setColor(c);
-		g.fillOval(pnt.x - r2, pnt.y - r2, rad, rad);
-
 		/* Paint full hour label */
 		if (kind == ElevationWayPointKind.FullHour) {
@@ -547,3 +576,5 @@
 		// nothing to do currently
 	}
+
+	
 }
Index: /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileDialog.java
===================================================================
--- /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileDialog.java	(revision 29949)
+++ /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileDialog.java	(revision 29950)
@@ -118,5 +118,5 @@
 				
 		JPanel dataPanel = new JPanel();
-		GridLayout gridLayout = new GridLayout(3, 6);
+		GridLayout gridLayout = new GridLayout(2, 6);
 		dataPanel.setLayout(gridLayout);
 
Index: /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileLayer.java
===================================================================
--- /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileLayer.java	(revision 29949)
+++ /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileLayer.java	(revision 29950)
@@ -27,5 +27,4 @@
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
-import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
@@ -36,6 +35,4 @@
 import org.openstreetmap.josm.tools.ImageProvider;
 
-import sun.java2d.loops.FillRect;
-
 /**
  * Layer class to show additional information on the elevation map, e. g. show
@@ -163,6 +160,6 @@
 	WayPoint lastWpt = null;
 
-
 	renderer.beginRendering();
+	
 	if (profile != null) {
 	    // choose smaller font
@@ -172,5 +169,4 @@
 
 	    try {
-		int npts = 0;
 		// paint way points one by one
 		for (WayPoint wpt : profile.getWayPoints()) {
@@ -178,15 +174,14 @@
 			// determine way point
 			ElevationWayPointKind kind = classifyWayPoint(lastWpt, wpt);
-
-			// render way point
+			// render way point as line
+			renderer.renderLine(g, profile, mv, lastWpt, wpt, kind);
+			// render single way point
 			renderer.renderWayPoint(g, profile, mv, wpt, kind);
-			npts++;
 		    } // else first way point -> is paint later
 
-		    // remember some things for next iteration
+		    // remember last wpt for next iteration
 		    lastWpt = wpt;
 		}
 
-		System.out.println("Rendered " + npts + ", " + profile.getWayPoints().size());
 		// now we paint special way points in emphasized style 
 
@@ -249,8 +244,8 @@
 	    if (actEle > lastEle) { // we went uphill?
 		// TODO: Provide parameters for high/low thresholds
-		if (slope > 3) kind =ElevationWayPointKind.ElevationGainLow;
+		if (slope > 2) kind =ElevationWayPointKind.ElevationGainLow;
 		if (slope > 10) kind =ElevationWayPointKind.ElevationGainHigh;
 	    } else {
-		if (slope > 3) kind =ElevationWayPointKind.ElevationLossLow;
+		if (slope > 2) kind =ElevationWayPointKind.ElevationLossLow;
 		if (slope > 10) kind =ElevationWayPointKind.ElevationLossHigh;
 	    }
@@ -268,5 +263,5 @@
     @Override
     public void visitBoundingBox(BoundingXYVisitor v) {
-	// TODO Auto-generated method stub
+	// What to do here?	
     }
 
Index: /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/IElevationProfileRenderer.java
===================================================================
--- /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/IElevationProfileRenderer.java	(revision 29949)
+++ /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/IElevationProfileRenderer.java	(revision 29950)
@@ -44,10 +44,23 @@
 	/**
 	 * Renders the way point with the lowest elevation.
+	 *
 	 * @param g The graphics context.
 	 * @param profile The elevation profile that contains the way point.
+	 * @param mv the associated view
 	 * @param wpt The way point to render.
-	 * @param kind The way point kind (see {@link ElevationWayPointKind}).	 
+	 * @param kind The way point kind (see {@link ElevationWayPointKind}).
 	 */
 	void renderWayPoint(Graphics g, IElevationProfile profile, MapView mv, WayPoint wpt, ElevationWayPointKind kind);
+	
+	/**
+	 * Render line between two way points. This is intended to render speed or slope.
+	 *
+	 * @param g The graphics context.
+	 * @param profile The elevation profile that contains the way point.
+	 * @param mv the associated view
+	 * @param wpt1 the first way point
+	 * @param wpt2 the second way point
+	 */
+	void renderLine(Graphics g, IElevationProfile profile, MapView mv, WayPoint wpt1, WayPoint wpt2, ElevationWayPointKind kind);
 	
 	/**
