Index: trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java	(revision 5241)
+++ trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java	(revision 5242)
@@ -1250,5 +1250,5 @@
                 curImg.tmp.setSpeed(speed);
                 if (curElevation != null && prevElevation != null) {
-                    curImg.setElevation(prevElevation + (curElevation - prevElevation) * timeDiff);
+                    curImg.tmp.setElevation(prevElevation + (curElevation - prevElevation) * timeDiff);
                 }
                 curImg.tmp.setGpsTime(new Date(curImg.getExifTime().getTime() - offset));
Index: trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 5241)
+++ trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 5242)
@@ -537,4 +537,14 @@
 
         try {
+            double ele=dirGps.getDouble(GpsDirectory.TAG_GPS_ALTITUDE);
+            int d = dirGps.getInt(GpsDirectory.TAG_GPS_ALTITUDE_REF);
+            if (d == 1) {
+                ele *= -1;
+            }
+            e.setElevation(ele);
+        } catch (MetadataException ex) {
+        }
+
+        try {
             // longitude
 
@@ -596,5 +606,5 @@
             }
         } catch (Exception ex) { // (other exceptions, e.g. #5271)
-            System.err.println("Error when reading EXIF from file: "+ex);
+            System.err.println("Error reading EXIF from file: "+ex);
             e.setExifCoor(null);
             e.setPos(null);
