Index: src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java	(revision 117)
+++ src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java	(revision 118)
@@ -202,6 +202,6 @@
 	private Node addNearest(Collection<OsmPrimitive> path, Node start, Node end) {
 		Collection<Segment> c = reverseSegmentMap.get(start);
-		//if (c == null)
-			//return null; // start may be a waypoint without segments
+		if (c == null)
+			return null; // start may be a waypoint without segments
 		double min = Double.MAX_VALUE;
 		Node next = null;
Index: src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- src/org/openstreetmap/josm/data/Preferences.java	(revision 117)
+++ src/org/openstreetmap/josm/data/Preferences.java	(revision 118)
@@ -143,5 +143,6 @@
 	public final void upgrade(int oldVersion) {
 		if (oldVersion > 117) return;
-		properties.put("color.scale", ColorHelper.color2html(Color.white));
+		if (!properties.containsKey("color.scale"))
+			properties.put("color.scale", ColorHelper.color2html(Color.white));
 	}
 }
Index: src/org/openstreetmap/josm/gui/PreferenceDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/PreferenceDialog.java	(revision 117)
+++ src/org/openstreetmap/josm/gui/PreferenceDialog.java	(revision 118)
@@ -88,5 +88,6 @@
 					sb.append(";"+annotationSources.getModel().getElementAt(i));
 				Main.pref.put("annotation.sources", sb.toString().substring(1));
-			}
+			} else
+				Main.pref.put("annotation.sources", null);
 
 			for (int i = 0; i < colors.getRowCount(); ++i) {
Index: src/org/openstreetmap/josm/io/RawGpsReader.java
===================================================================
--- src/org/openstreetmap/josm/io/RawGpsReader.java	(revision 117)
+++ src/org/openstreetmap/josm/io/RawGpsReader.java	(revision 118)
@@ -32,5 +32,5 @@
 		public Collection<Collection<GpsPoint>> data = new LinkedList<Collection<GpsPoint>>();
 		private LatLon currentLatLon;
-		private String currentTime = null;
+		private String currentTime = "";
 		private Stack<String> tags = new Stack<String>();
 
@@ -49,4 +49,5 @@
 	                throw new SAXException(e);
                 }
+                currentTime = "";
 			}
 			tags.push(qName);
@@ -69,9 +70,9 @@
 			if (qName.equals("wpt") || qName.equals("trkpt")) {
 				current.add(new GpsPoint(currentLatLon, currentTime));
-			} else if (qName.equals("trkseg") || qName.equals("trk") || qName.equals("gpx"))
+				currentTime = "";
+			} else if (qName.equals("trkseg") || qName.equals("trk") || qName.equals("gpx")) {
 				newTrack();
-			
-			if (!qName.equals("time"))
 				currentTime = "";
+			}
 			tags.pop();
         }
