Index: applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/ElevationModel.java
===================================================================
--- applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/ElevationModel.java	(revision 23753)
+++ applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/ElevationModel.java	(revision 23754)
@@ -145,4 +145,5 @@
 		}
 
+		setDistance(gpxData.length());	// get distance from GPX 
 		GpxIterator.visit(gpxData, this);
 
Index: applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/ElevationProfileBase.java
===================================================================
--- applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/ElevationProfileBase.java	(revision 23753)
+++ applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/ElevationProfileBase.java	(revision 23754)
@@ -135,6 +135,5 @@
 		gain = 0;
 		lastEle = 0;
-		dist = 0.0;
-
+		
 		for (WayPoint wayPoint : this.wayPoints) {
 			visit(wayPoint);
@@ -340,5 +339,13 @@
 	@Override
 	public double getDistance() {
-		return dist / 1000.0; // dist is in meters
+		return dist; // dist is in meters
+	}
+	
+	/**
+	 * Sets the distance of the elevation profile.
+	 * @param dist
+	 */
+	protected void setDistance(double dist) {
+		this.dist = dist; 
 	}
 
@@ -489,9 +496,9 @@
 		}
 		
-		// determine distance
+		/*
 		if (lastWayPoint != null) {
 			double d = wp.getCoor().greatCircleDistance(lastWayPoint.getCoor());
 			dist += d;
-		}
+		}*/
 		lastWayPoint = wp;
 	}
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 23753)
+++ applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileDialog.java	(revision 23754)
@@ -41,4 +41,5 @@
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.NavigatableComponent;
 import org.openstreetmap.josm.gui.MapView.EditLayerChangeListener;
 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
@@ -289,11 +290,14 @@
 		setTitle(String.format("%s: %s", tr("Elevation Profile"), profile.getName()));
 		
-		// TODO: Offer also ft here
 		if (profile.hasElevationData()) {
-			minHeightLabel.setText(String.format("%d m", profile.getMinHeight()));
-			maxHeightLabel.setText(String.format("%d m", profile.getMaxHeight()));
-			avrgHeightLabel.setText(String.format("%d m", profile.getAverageHeight()));
-			elevationGainLabel.setText(String.format("%d m", profile
-					.getGain()));
+			// Show elevation data
+			minHeightLabel.setText(
+					NavigatableComponent.getSystemOfMeasurement().getDistText(profile.getMinHeight()));
+			maxHeightLabel.setText(
+					NavigatableComponent.getSystemOfMeasurement().getDistText(profile.getMaxHeight()));
+			avrgHeightLabel.setText(
+					NavigatableComponent.getSystemOfMeasurement().getDistText(profile.getAverageHeight()));
+			elevationGainLabel.setText(
+					NavigatableComponent.getSystemOfMeasurement().getDistText(profile.getGain()));
 		} else { // no elevation data
 			minHeightLabel.setText("-");
@@ -312,5 +316,5 @@
 
 		totalTimeLabel.setText(String.format("%d:%d h", hours, minutes));
-		distLabel.setText(String.format("%5.2f km", dist));
+		distLabel.setText(NavigatableComponent.getSystemOfMeasurement().getDistText(dist));
 		
 		fireModelChanged();
