Index: src/org/openstreetmap/josm/io/GpxReader.java
===================================================================
--- src/org/openstreetmap/josm/io/GpxReader.java	(revision 2339)
+++ src/org/openstreetmap/josm/io/GpxReader.java	(working copy)
@@ -57,6 +57,8 @@
 
         private StringBuffer accumulator = new StringBuffer();
 
+        private boolean nokiaSportsTrackerBug = false;
+
         @Override public void startDocument() {
             accumulator = new StringBuffer();
             states = new Stack<state>();
@@ -98,6 +100,8 @@
                     } else if (qName.equals("extensions")) {
                         states.push(currentState);
                         currentState = state.ext;
+                    } else if (qName.equals("gpx") && atts.getValue("creator").startsWith("Nokia Sports Tracker")) {
+                        nokiaSportsTrackerBug = true;
                     }
                     break;
                 case author:
@@ -177,6 +181,20 @@
         }
 
         @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);
         }
 
