Index: /trunk/src/org/openstreetmap/josm/io/nmea/NmeaReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/nmea/NmeaReader.java	(revision 12421)
+++ /trunk/src/org/openstreetmap/josm/io/nmea/NmeaReader.java	(revision 12422)
@@ -342,5 +342,5 @@
                     // other values than (T)rue are ignored
                     accu = e[VTG.COURSE.position];
-                    if (!accu.isEmpty()) {
+                    if (!accu.isEmpty() && currentwp != null) {
                         Double.parseDouble(accu);
                         currentwp.put("course", accu);
@@ -351,5 +351,5 @@
                 if (accu.startsWith("K")) {
                     accu = e[VTG.SPEED_KMH.position];
-                    if (!accu.isEmpty()) {
+                    if (!accu.isEmpty() && currentwp != null) {
                         double speed = Double.parseDouble(accu);
                         speed /= 3.6; // speed in m/s
Index: /trunk/test/data/regress/14924/input.gpx
===================================================================
--- /trunk/test/data/regress/14924/input.gpx	(revision 12422)
+++ /trunk/test/data/regress/14924/input.gpx	(revision 12422)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx version="1.0" xmlns="http://www.topografix.com/GPX/1/0">
+  <trk>
+  </trk>
+</gpx>
Index: /trunk/test/data/regress/14924/input.nmea
===================================================================
--- /trunk/test/data/regress/14924/input.nmea	(revision 12422)
+++ /trunk/test/data/regress/14924/input.nmea	(revision 12422)
@@ -0,0 +1,2 @@
+$GPRMC,094055.000,V,0000.0000,N,00000.0000,E,0.00,0.00,100617,,,N*7A
+$GPVTG,0.00,T,,M,0.00,N,0.0,K,N*02
Index: /trunk/test/unit/org/openstreetmap/josm/io/nmea/NmeaReaderTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/nmea/NmeaReaderTest.java	(revision 12421)
+++ /trunk/test/unit/org/openstreetmap/josm/io/nmea/NmeaReaderTest.java	(revision 12422)
@@ -76,5 +76,5 @@
         assertEquals(numCoor, in.getNumberOfCoordinates());
         assertEquals(0, in.getParserMalformed());
-        assertEquals(in.data.dataSources, gpx.dataSources);
+        assertEquals(gpx.dataSources, in.data.dataSources);
         assertEquals(1, gpx.tracks.size());
         assertEquals(1, in.data.tracks.size());
@@ -82,14 +82,16 @@
         GpxTrack nmeaTrack = in.data.tracks.iterator().next();
         assertEquals(gpxTrack.getBounds(), nmeaTrack.getBounds());
-        assertEquals(1, gpxTrack.getSegments().size());
-        assertEquals(1, nmeaTrack.getSegments().size());
-        GpxTrackSegment gpxSeg = gpxTrack.getSegments().iterator().next();
-        GpxTrackSegment nmeaSeg = nmeaTrack.getSegments().iterator().next();
-        assertEquals(gpxSeg.getBounds(), nmeaSeg.getBounds());
-        assertEquals(numCoor, gpxSeg.getWayPoints().size());
-        assertEquals(numCoor, nmeaSeg.getWayPoints().size());
-        WayPoint gpxWpt = gpxSeg.getWayPoints().iterator().next();
-        WayPoint nmeaWpt = nmeaSeg.getWayPoints().iterator().next();
-        assertEquals(gpxWpt.getCoor().getRoundedToOsmPrecision(), nmeaWpt.getCoor().getRoundedToOsmPrecision());
+        int nTracks = gpxTrack.getSegments().size();
+        assertEquals(nTracks, nmeaTrack.getSegments().size());
+        if (nTracks > 0) {
+            GpxTrackSegment gpxSeg = gpxTrack.getSegments().iterator().next();
+            GpxTrackSegment nmeaSeg = nmeaTrack.getSegments().iterator().next();
+            assertEquals(gpxSeg.getBounds(), nmeaSeg.getBounds());
+            assertEquals(numCoor, gpxSeg.getWayPoints().size());
+            assertEquals(numCoor, nmeaSeg.getWayPoints().size());
+            WayPoint gpxWpt = gpxSeg.getWayPoints().iterator().next();
+            WayPoint nmeaWpt = nmeaSeg.getWayPoints().iterator().next();
+            assertEquals(gpxWpt.getCoor().getRoundedToOsmPrecision(), nmeaWpt.getCoor().getRoundedToOsmPrecision());
+        }
     }
 
@@ -133,3 +135,12 @@
         compareWithReference(2147, "WG20080203171807.log", 487);
     }
+
+    /**
+     * Non-regression test for <a href="https://josm.openstreetmap.de/ticket/14924">Bug #14924</a>.
+     * @throws Exception if an error occurs
+     */
+    @Test
+    public void testTicket14924() throws Exception {
+        compareWithReference(14924, "input", 0);
+    }
 }
