Index: trunk/src/org/openstreetmap/josm/data/gpx/WayPoint.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/gpx/WayPoint.java	(revision 2866)
+++ trunk/src/org/openstreetmap/josm/data/gpx/WayPoint.java	(revision 2867)
@@ -5,4 +5,5 @@
 
 import java.awt.Color;
+import java.util.Date;
 
 import org.openstreetmap.josm.data.coor.CachedLatLon;
@@ -54,3 +55,7 @@
         return Double.compare(time, w.time);
     }
+
+    public Date getTime() {
+        return new Date((long) (time * 1000));
+    }
 }
Index: trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(revision 2866)
+++ trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(revision 2867)
@@ -26,5 +26,4 @@
 import java.util.Collections;
 import java.util.Comparator;
-import java.util.Date;
 import java.util.LinkedList;
 import java.util.List;
@@ -375,7 +374,7 @@
 
         if (data.tracks.size() > 0) {
-            info.append("<table><thead align=\"center\"><tr><td colspan=\"5\">"
+            info.append("<table><thead align='center'><tr><td colspan='5'>"
                     + trn("{0} track", "{0} tracks", data.tracks.size(), data.tracks.size())
-                    + "</td></tr><tr><td>" + tr("Name") + "</td><td>"
+                    + "</td></tr><tr align='center'><td>" + tr("Name") + "</td><td>"
                     + tr("Description") + "</td><td>" + tr("Timespan")
                     + "</td><td>" + tr("Length") + "</td><td>" + tr("URL")
@@ -410,7 +409,17 @@
 
                 if (earliest != null && latest != null) {
-                    DateFormat df = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT);
-                    info.append(df.format(new Date((long) (earliest.time * 1000))) + " - "
-                            + df.format(new Date((long) (latest.time * 1000))));
+                    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
+                    String earliestDate = df.format(earliest.getTime());
+                    String latestDate = df.format(latest.getTime());
+
+                    if (earliestDate.equals(latestDate)) {
+                        DateFormat tf = DateFormat.getTimeInstance(DateFormat.SHORT);
+                        info.append(earliestDate).append(" ");
+                        info.append(tf.format(earliest.getTime())).append(" - ").append(tf.format(latest.getTime()));
+                    } else {
+                        DateFormat dtf = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
+                        info.append(dtf.format(earliest.getTime())).append(" - ").append(dtf.format(latest.getTime()));
+                    }
+
                     int diff = (int) (latest.time - earliest.time);
                     info.append(" (" + (diff / 3600) + ":" + ((diff % 3600) / 60) + ")");
Index: trunk/src/org/openstreetmap/josm/io/GpxImporter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/GpxImporter.java	(revision 2866)
+++ trunk/src/org/openstreetmap/josm/io/GpxImporter.java	(revision 2867)
@@ -56,5 +56,5 @@
             Runnable task = new Runnable() {
                 public void run() {
-                    if (!r.data.tracks.isEmpty() || ! r.data.routes.isEmpty()) {
+                    if (r.data.hasRoutePoints() || r.data.hasTrackPoints()) {
                         Main.main.addLayer(gpxLayer);
                     }
