--- a/exif.c
+++ b/exif.c
@@ -256,10 +256,11 @@
 				return;
 			}
 			break;
-
+			/*
 		case EXIF_T_GPSIFD:
 			gpsprop(prop, t);
 			return;
+			*/
 		}
 	}
 
@@ -529,11 +530,15 @@
 			readifd(prop->value, &dir->next, tags, md);
 		else
 #endif
+		  /*
 			if (prop->tag == EXIF_T_GPSIFD) {
 				dir->next = readifds(prop->value, gpstags, md);
 			} else {
+		  */
 				dir->next = readifds(prop->value, tags, md);
+		/*
 			}
+		*/
 
 		if (!dir->next) {
 
@@ -640,7 +645,7 @@
 		 * XXX Note that this is kind of dangerous -- any other
 		 * tag set won't reach the end of the switch...
 		 */
-		if (prop->tagset != gpstags)
+	  //		if (prop->tagset != gpstags)
 			break;
 		/* FALLTHROUGH */
 
--- a/exifint.h
+++ b/exifint.h
@@ -52,7 +52,7 @@
 /* Exif IFD tags. */
 
 #define EXIF_T_EXIFIFD		0x8769
-#define EXIF_T_GPSIFD		0x8825
+//#define EXIF_T_GPSIFD		0x8825
 #define EXIF_T_MAKERNOTE	0x927c
 #define EXIF_T_INTEROP		0xa005
 
@@ -148,7 +148,7 @@
 
 /* Interface to exifgps.c. */
 
-extern struct exiftag gpstags[];
-extern void gpsprop(struct exifprop *prop, struct exiftags *t);
+//extern struct exiftag gpstags[];
+//extern void gpsprop(struct exifprop *prop, struct exiftags *t);
 
 #endif
