diff -urd jhead-2.4.orig/exif.c jhead-2.4/exif.c
--- jhead-2.4.orig/exif.c	2005-06-10 16:27:06.000000000 +0300
+++ jhead-2.4/exif.c	2005-06-30 15:50:13.587716672 +0300
@@ -1201,6 +1201,7 @@
     if (ImageInfo.GpsInfoPresent){
         printf("GPS Latitude : %s\n",ImageInfo.GpsLat);
         printf("GPS Longitude: %s\n",ImageInfo.GpsLong);
+        printf("GPS Altitude : %s\n",ImageInfo.GpsAlt);
     }
 
     // Print the comment. Print 'Comment:' for each new line of comment.
diff -urd jhead-2.4.orig/gpsinfo.c jhead-2.4/gpsinfo.c
--- jhead-2.4.orig/gpsinfo.c	2005-06-10 16:27:06.000000000 +0300
+++ jhead-2.4/gpsinfo.c	2005-06-30 16:17:17.920330534 +0300
@@ -23,6 +23,8 @@
 #define TAG_GPS_LAT        2
 #define TAG_GPS_LONG_REF   3
 #define TAG_GPS_LONG       4
+#define TAG_GPS_ALT_REF    5
+#define TAG_GPS_ALT        6
 
 static const char * GpsTags[MAX_GPS_TAG+1]= {
     "VersionID       ",//0x00  
@@ -77,6 +79,7 @@
     ImageInfo.GpsInfoPresent = TRUE;
     strcpy(ImageInfo.GpsLat, "? ?");
     strcpy(ImageInfo.GpsLong, "? ?");
+    strcpy(ImageInfo.GpsAlt, "?");
 
     for (de=0;de<NumDirEntries;de++){
         unsigned Tag, Format, Components;
@@ -156,6 +159,14 @@
                     strncpy(ImageInfo.GpsLong+2, TempString, 29);
                 }
                 break;
+
+            case TAG_GPS_ALT_REF:
+                ImageInfo.GpsAlt[0] = (ValuePtr[0] ? '-' : ' ');
+                break;
+
+            case TAG_GPS_ALT:
+                snprintf(ImageInfo.GpsAlt + ((ImageInfo.GpsAlt[0] == '-')) , 7, "%dm", Get32s(ValuePtr));
+                break;
         }
 
         if (ShowTags){
diff -urd jhead-2.4.orig/jhead.h jhead-2.4/jhead.h
--- jhead-2.4.orig/jhead.h	2005-06-10 16:27:06.000000000 +0300
+++ jhead-2.4/jhead.h	2005-06-30 15:50:13.589715833 +0300
@@ -71,6 +71,7 @@
     int GpsInfoPresent;
     char GpsLat[30];
     char GpsLong[30];
+    char GpsAlt[8];
 }ImageInfo_t;
 
 
