Index: /src/org/openstreetmap/josm/gui/MapMover.java
===================================================================
--- /src/org/openstreetmap/josm/gui/MapMover.java	(revision 64)
+++ /src/org/openstreetmap/josm/gui/MapMover.java	(revision 65)
@@ -109,5 +109,11 @@
 	public void mouseWheelMoved(MouseWheelEvent e) {
 		double zoom = Math.max(0.1, 1 + e.getWheelRotation()/5.0);
-		nc.zoomTo(nc.getCenter(), nc.getScale()*zoom);
+		double zoomfactor = (zoom -1)/2+1;
+		int newHalfWidth = (int) (nc.getWidth()*zoomfactor - nc.getWidth()/2);
+		int centerx = e.getX() - (e.getX()-nc.getWidth()/2)*newHalfWidth*2/nc.getWidth();
+		int newHalfHeight = (int) (nc.getHeight()*zoomfactor - nc.getHeight()/2);
+		int centery = e.getY() - (e.getY()-nc.getHeight()/2)*newHalfHeight*2/nc.getHeight();
+		GeoPoint newCenter = nc.getPoint(centerx, centery, false); 
+		nc.zoomTo(newCenter, nc.getScale()*zoom);
 	}
 
Index: /src/org/openstreetmap/josm/gui/NavigatableComponent.java
===================================================================
--- /src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 64)
+++ /src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 65)
@@ -149,11 +149,11 @@
 			return minPrimitive;
 		
-		// for whole waies, try the waies first
+		// for whole ways, try the ways first
 		minDistanceSq = Double.MAX_VALUE;
 		if (!lsInsteadWay) {
-			for (Way t : Main.main.ds.waies) {
-				if (t.isDeleted())
+			for (Way w : Main.main.ds.waies) {
+				if (w.isDeleted())
 					continue;
-				for (LineSegment ls : t.segments) {
+				for (LineSegment ls : w.segments) {
 					if (ls.isDeleted())
 						continue;
@@ -166,5 +166,5 @@
 					if (perDist < 100 && minDistanceSq > perDist && a < c+100 && b < c+100) {
 						minDistanceSq = perDist;
-						minPrimitive = t;
+						minPrimitive = w;
 					}
 				}			
Index: /src/org/openstreetmap/josm/io/OsmReader.java
===================================================================
--- /src/org/openstreetmap/josm/io/OsmReader.java	(revision 64)
+++ /src/org/openstreetmap/josm/io/OsmReader.java	(revision 65)
@@ -96,5 +96,5 @@
 					LineSegment ls = lineSegments.get(getLong(atts, "id"));
 					if (ls == null)
-						fatalError(new SAXParseException("Line segment "+getLong(atts, "id")+"has not been transfered before.", null));
+						fatalError(new SAXParseException("Line segment "+getLong(atts, "id")+" has not been transfered before.", null));
 					((Way)current).segments.add(ls);
 				}
Index: /src/org/openstreetmap/josm/io/OsmServerReader.java
===================================================================
--- /src/org/openstreetmap/josm/io/OsmServerReader.java	(revision 64)
+++ /src/org/openstreetmap/josm/io/OsmServerReader.java	(revision 65)
@@ -48,5 +48,5 @@
 	 */
 	public Collection<Collection<GeoPoint>> parseRawGps() throws IOException, JDOMException {
-		String url = Main.pref.osmDataServer+"/0.3/waypoints?bbox="+lon1+","+lat1+","+lon2+","+lat2+"&page=";
+		String url = Main.pref.osmDataServer+"/0.3/trackpoints?bbox="+lon1+","+lat1+","+lon2+","+lat2+"&page=";
 		Collection<Collection<GeoPoint>> data = new LinkedList<Collection<GeoPoint>>();
 		Collection<GeoPoint> list = new LinkedList<GeoPoint>();
