Index: trunk/src/org/openstreetmap/josm/io/GpxReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/GpxReader.java	(revision 2341)
+++ trunk/src/org/openstreetmap/josm/io/GpxReader.java	(revision 2342)
@@ -58,4 +58,6 @@
         private StringBuffer accumulator = new StringBuffer();
 
+        private boolean nokiaSportsTrackerBug = false;
+
         @Override public void startDocument() {
             accumulator = new StringBuffer();
@@ -99,4 +101,6 @@
                         states.push(currentState);
                         currentState = state.ext;
+                    } else if (qName.equals("gpx") && atts.getValue("creator").startsWith("Nokia Sports Tracker")) {
+                        nokiaSportsTrackerBug = true;
                     }
                     break;
@@ -178,4 +182,18 @@
 
         @Override public void characters(char[] ch, int start, int length) {
+            /** 
+             * Remove illegal characters generated by the Nokia Sports Tracker device.
+             * Don't do this crude substitution for all files, since it would destroy 
+             * certain unicode characters.
+             */
+            if (nokiaSportsTrackerBug) {
+                for (int i=0; i<ch.length; ++i) {
+                    if (ch[i] == 1) {
+                        ch[i] = 32;
+                    }
+                }
+                nokiaSportsTrackerBug = false;
+            }
+
             accumulator.append(ch, start, length);
         }
