Index: /trunk/src/org/openstreetmap/josm/io/GpxWriter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/GpxWriter.java	(revision 14242)
+++ /trunk/src/org/openstreetmap/josm/io/GpxWriter.java	(revision 14243)
@@ -30,4 +30,5 @@
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.tools.JosmRuntimeException;
+import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.date.DateUtils;
 
@@ -121,4 +122,8 @@
                     if (val instanceof Date) {
                         simpleTag(key, gpxFormat.format(val));
+                    } else if (val instanceof Number) {
+                        simpleTag(key, val.toString());
+                    } else if (val != null) {
+                        Logging.warn("GPX attribute '"+key+"' not managed: " + val);
                     }
                 }
Index: /trunk/test/unit/org/openstreetmap/josm/io/GpxWriterTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/GpxWriterTest.java	(revision 14242)
+++ /trunk/test/unit/org/openstreetmap/josm/io/GpxWriterTest.java	(revision 14243)
@@ -11,4 +11,5 @@
 import java.time.ZoneOffset;
 import java.util.Date;
+import java.util.function.Consumer;
 
 import org.junit.Rule;
@@ -34,13 +35,8 @@
     public JOSMTestRules test = new JOSMTestRules();
 
-    /**
-     * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/16550">#16550</a>
-     * @throws IOException never
-     */
-    @Test
-    public void testTicket16550() throws IOException {
+    private static void testSingleWaypoint(Consumer<WayPoint> consumer, String atts) throws IOException {
         GpxData gpx = new GpxData();
         WayPoint waypoint = new WayPoint(LatLon.ZERO);
-        waypoint.put(GpxConstants.PT_TIME, Date.from(LocalDate.of(2018, Month.AUGUST, 2).atStartOfDay(ZoneOffset.UTC).toInstant()));
+        consumer.accept(waypoint);
         gpx.addWaypoint(waypoint);
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -48,5 +44,4 @@
             writer.write(gpx);
         }
-        // Checks that time stored as date is correctly written into XML timestamp
         assertEquals(String.format("<?xml version='1.0' encoding='UTF-8'?>%n" +
                 "<gpx version=\"1.1\" creator=\"JOSM GPX export\" xmlns=\"http://www.topografix.com/GPX/1/1\"%n" +
@@ -57,7 +52,39 @@
                 "  </metadata>%n" +
                 "  <wpt lat=\"0.0\" lon=\"0.0\">%n" +
-                "    <time>2018-08-02T00:00:00.000Z</time>%n" +
+                atts +
                 "  </wpt>%n" +
                 "</gpx>"), baos.toString(StandardCharsets.UTF_8.name()));
     }
+
+    /**
+     * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/16550">#16550</a>
+     * @throws IOException never
+     */
+    @Test
+    public void testTicket16550() throws IOException {
+        // Checks that time stored as date is correctly written into XML timestamp
+        testSingleWaypoint(
+                w -> w.put(GpxConstants.PT_TIME, Date.from(LocalDate.of(2018, Month.AUGUST, 2).atStartOfDay(ZoneOffset.UTC).toInstant())),
+                "    <time>2018-08-02T00:00:00.000Z</time>%n");
+    }
+
+    /**
+     * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/16725">#16725</a>
+     * @throws IOException never
+     */
+    @Test
+    public void testTicket16725() throws IOException {
+        // Checks that sat, hdop, pdop, vdop are correctly exported
+        testSingleWaypoint(
+                w -> {
+                    w.put(GpxConstants.PT_SAT, 16);
+                    w.put(GpxConstants.PT_HDOP, 0.7);
+                    w.put(GpxConstants.PT_VDOP, 0.9);
+                    w.put(GpxConstants.PT_PDOP, 1.2);
+                },
+                "    <sat>16</sat>%n" +
+                "    <hdop>0.7</hdop>%n" +
+                "    <vdop>0.9</vdop>%n" +
+                "    <pdop>1.2</pdop>%n");
+    }
 }
