Index: /trunk/src/org/openstreetmap/josm/io/NmeaReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/NmeaReader.java	(revision 1380)
+++ /trunk/src/org/openstreetmap/josm/io/NmeaReader.java	(revision 1381)
@@ -136,4 +136,15 @@
     private final static SimpleDateFormat RMCTIMEFMT =
         new SimpleDateFormat("ddMMyyHHmmss.SSS");
+    private final static SimpleDateFormat RMCTIMEFMTSTD =
+        new SimpleDateFormat("ddMMyyHHmmss");
+
+    private Date readTime(String p)
+    {
+        Date d = RMCTIMEFMT.parse(p, new ParsePosition(0));
+        if (d == null)
+            d = RMCTIMEFMTSTD.parse(p, new ParsePosition(0));
+        if (d == null) throw(null); // malformed
+        return d;
+    }
 
     // functons for reading the error stats
@@ -258,6 +269,5 @@
                 // time
                 accu = e[GPGGA.TIME.position];
-                Date d = RMCTIMEFMT.parse(currentDate+accu, new ParsePosition(0));
-                if (d == null) throw(null); // malformed
+                Date d = readTime(currentDate+accu);
 
                 if((ps.p_Time==null) || (currentwp==null) || !ps.p_Time.equals(accu)) {
@@ -376,6 +386,5 @@
                 String time = e[GPRMC.TIME.position];
 
-                Date d = RMCTIMEFMT.parse(currentDate+time, new ParsePosition(0));
-                if (d == null) throw(null);
+                Date d = readTime(currentDate+time);
 
                 if((ps.p_Time==null) || (currentwp==null) || !ps.p_Time.equals(time)) {
@@ -426,5 +435,5 @@
         } catch(Exception x) {
             // out of bounds and such
-            //System.out.println("Malformed line: "+s.toString().trim());
+            // System.out.println("Malformed line: "+s.toString().trim());
             ps.malformed++;
             ps.p_Wp=null;
