Index: src/org/openstreetmap/josm/actions/OpenAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/OpenAction.java	(revision 223)
+++ src/org/openstreetmap/josm/actions/OpenAction.java	(working copy)
@@ -11,6 +11,7 @@
 import java.io.IOException;
 import java.util.Collection;
 import java.util.LinkedList;
+import java.util.zip.GZIPInputStream;
 
 import javax.swing.JFileChooser;
 import javax.swing.JOptionPane;
@@ -61,7 +62,13 @@
 				Collection<Collection<GpsPoint>> gpsData = null;
 				Collection<Marker> markerData = null;
 				if (ExtensionFileFilter.filters[ExtensionFileFilter.GPX].acceptName(fn)) {
-					RawGpsReader r = new RawGpsReader(new FileInputStream(file), file.getAbsoluteFile().getParentFile());
+					RawGpsReader r = null;
+					// Check to see if we are opening a compressed file
+					if(file.getName().endsWith(".gpx.gz")) {
+						r = new RawGpsReader(new GZIPInputStream(new FileInputStream(file)), file.getAbsoluteFile().getParentFile());
+					} else {
+						r = new RawGpsReader(new FileInputStream(file), file.getAbsoluteFile().getParentFile());
+					}
 					gpsData = r.trackData;
 					markerData = r.markerData;
 				} else if (ExtensionFileFilter.filters[ExtensionFileFilter.CSV].acceptName(fn)) {
Index: src/org/openstreetmap/josm/actions/ExtensionFileFilter.java
===================================================================
--- src/org/openstreetmap/josm/actions/ExtensionFileFilter.java	(revision 223)
+++ src/org/openstreetmap/josm/actions/ExtensionFileFilter.java	(working copy)
@@ -23,7 +23,7 @@
 	
 	public static ExtensionFileFilter[] filters = {
 		new ExtensionFileFilter("osm,xml", "osm", tr("OSM Server Files (.osm .xml)")),
-		new ExtensionFileFilter("gpx", "gpx", tr("GPX Files (.gpx)")),
+		new ExtensionFileFilter("gpx,gpx.gz", "gpx", tr("GPX Files (.gpx .gpx.gz)")),
 		new ExtensionFileFilter("csv,txt", "csv", tr("CSV Files (.csv .txt)")),
 	};
 
