Index: src/uk/me/parabola/imgfmt/app/Coord.java
===================================================================
--- src/uk/me/parabola/imgfmt/app/Coord.java	(revision 4734)
+++ src/uk/me/parabola/imgfmt/app/Coord.java	(working copy)
@@ -616,18 +616,23 @@
 	}			
 
 	/**
-	 * Returns a string representation of the object.
+	 * Returns a string representation of the object in degrees.
 	 *
-	 * @return a string representation of the object.
+	 * @return a string representation of the object in degrees
 	 */
 	public String toString() {
-		return (latitude) + "/" + (longitude);
+		return String.format(Locale.ENGLISH, "%.6f,%.6f",
+				getLatDegrees(),
+				getLonDegrees());
 	}
 
-	public String toDegreeString() {
-		return String.format(Locale.ENGLISH, "%.6f,%.6f",
-			getLatDegrees(),
-			getLonDegrees());
+	/**
+	 * Returns a string representation of the object showing Garmin units
+	 *
+	 * @return a string representation of the object showing Garmin units
+	 */
+	public String toGarminString() {
+		return (latitude) + "/" + (longitude);
 	}
 
 	protected String toOSMURL(int zoom) {
Index: src/uk/me/parabola/imgfmt/app/net/AngleChecker.java
===================================================================
--- src/uk/me/parabola/imgfmt/app/net/AngleChecker.java	(revision 4734)
+++ src/uk/me/parabola/imgfmt/app/net/AngleChecker.java	(working copy)
@@ -195,7 +195,7 @@
 				float angleBetween = arc2.getInitialHeading() - ag.initialHeading;
 				if (angleBetween < 1) {
 					if (arc1.getDest() != arc2.getDest() && arc1.getRoadDef().getId() != arc2.getRoadDef().getId())
-						log.warn("sharp angle < 1° at",node.getCoord().toDegreeString(),",maybe duplicated OSM way with bearing",getCompassBearing(arc1.getInitialHeading()));
+						log.warn("sharp angle < 1° at", node.getCoord(), ",maybe duplicated OSM way with bearing", getCompassBearing(arc1.getInitialHeading()));
 					ag.addArc(arc2);
 				} else {
 					if (angleBetween < minAngle)
@@ -301,7 +301,7 @@
 			}
 			if (ignoredReason != null){
 				if (log.isInfoEnabled()){
-					log.info("sharp angle", aa.angle, "° at", node.getCoord().toDegreeString(),
+					log.info("sharp angle", aa.angle, "° at", node.getCoord(),
 							 "headings", getCompassBearing(ag1.getInitialHeading()), getCompassBearing(ag2.getInitialHeading()),
 							 "speeds", ag1.maxRoadSpeed, ag2.maxRoadSpeed);
 					log.info("ignoring", ignoredReason);
@@ -320,7 +320,7 @@
 			ArcGroup ag1 = arcGroups.get(i);
 			ArcGroup ag2 = arcGroups.get(i+1 < n ? i+1 : 0);
 			if (log.isInfoEnabled()){
-				log.info("sharp angle", aa.angle, "° at", node.getCoord().toDegreeString(),
+				log.info("sharp angle", aa.angle, "° at", node.getCoord(),
 						 "headings", getCompassBearing(ag1.getInitialHeading()), getCompassBearing(ag2.getInitialHeading()),
 						 "speeds", ag1.maxRoadSpeed, ag2.maxRoadSpeed,
 						 "classes",ag1.maxRoadClass, ag2.maxRoadClass);
@@ -427,7 +427,7 @@
 		} // else angle == 0 and can't widen as don't know which way around to do it
 		if (extra != 0) {
 			if (log.isInfoEnabled())
-				log.info("join angle", angle, "° at", node.getCoord().toDegreeString(), "increased by", extra);
+				log.info("join angle", angle, "° at", node.getCoord(), "increased by", extra);
 			arc1.modInitialHeading(+extra/2);
 			arc2.modInitialHeading(-extra/2);
 		}
Index: src/uk/me/parabola/imgfmt/app/net/NOD1Part.java
===================================================================
--- src/uk/me/parabola/imgfmt/app/net/NOD1Part.java	(revision 4734)
+++ src/uk/me/parabola/imgfmt/app/net/NOD1Part.java	(working copy)
@@ -170,8 +170,7 @@
 		}
 
 		public String toString() {
-			return "BBox[" + new Coord(minLat,minLon).toDegreeString()
-				+ ", " + new Coord(maxLat,maxLon).toDegreeString() + "]";
+			return "BBox[" + new Coord(minLat, minLon) + ", " + new Coord(maxLat, maxLon) + "]";
 		}
 	}
 
Index: src/uk/me/parabola/imgfmt/app/net/RoadNetwork.java
===================================================================
--- src/uk/me/parabola/imgfmt/app/net/RoadNetwork.java	(revision 4734)
+++ src/uk/me/parabola/imgfmt/app/net/RoadNetwork.java	(working copy)
@@ -151,8 +151,7 @@
 		
 		if(log.isDebugEnabled()) {
 			log.debug("lastId = " + lastId + " curId = " + currId);
-			log.debug("from " + prevNode.toDegreeString() 
-					  + " to " + currNode.toDegreeString());
+			log.debug("from " + prevNode + " to " + currNode);
 			log.debug("arclength=" + arcLength + " roadlength=" + roadLength);
 		}
 
@@ -360,7 +359,7 @@
 			Set<RoadDef> visitedRoads = new HashSet<>();
 			long sumOfRoadLengths = calcIslandSize(island, nodeToRoadMap, visitedRoads);
 			if (reportRoutingIslands)
-				log.diagnostic("Routing island " + visitedRoads.iterator().next() +  " at " + island.get(0).getCoord().toDegreeString() + " with " + island.size() +
+				log.diagnostic("Routing island " + visitedRoads.iterator().next() +  " at " + island.get(0).getCoord() + " with " + island.size() +
 					" routing node(s) and total length of " + sumOfRoadLengths + "m");
 			if (sumOfRoadLengths < maxSumRoadLengths) {
 				// set discarded flag for all nodes of the island
Index: src/uk/me/parabola/imgfmt/app/net/RouteCenter.java
===================================================================
--- src/uk/me/parabola/imgfmt/app/net/RouteCenter.java	(revision 4734)
+++ src/uk/me/parabola/imgfmt/app/net/RouteCenter.java	(working copy)
@@ -50,7 +50,7 @@
 		this.tabB = tabB;
 		this.tabC = new TableC(tabA);
 
-		log.info("new RouteCenter at " + centralPoint.toDegreeString() +
+		log.info("new RouteCenter at " + centralPoint +
 				 ", nodes: " + nodes.size()	+ " tabA: " + tabA.size() +
 				 " tabB: " + tabB.size());
 	}
Index: src/uk/me/parabola/imgfmt/app/net/RouteNode.java
===================================================================
--- src/uk/me/parabola/imgfmt/app/net/RouteNode.java	(revision 4734)
+++ src/uk/me/parabola/imgfmt/app/net/RouteNode.java	(working copy)
@@ -270,7 +270,7 @@
 		// mark the node as having been discarded
 		flags |= F_DISCARDED;
 		if (isBoundary()) {
-			log.error("intermal error? boundary node at",coord.toDegreeString(), "is discarded");
+			log.error("intermal error? boundary node at", coord, "is discarded");
 		}
 	}
 
@@ -283,13 +283,13 @@
 			// return something so that the program can continue
 			return 0;
 		}
-		assert offsetNod1 != -1: "failed for node " + coord.getId() + " at " + coord.toDegreeString();
+		assert offsetNod1 != -1: "failed for node " + coord.getId() + " at " + coord;
 		return offsetNod1;
 	}
 
 	public void setOffsets(Coord centralPoint) {
 		if(log.isDebugEnabled())
-			log.debug("center", centralPoint, ", coord", coord.toDegreeString());
+			log.debug("center", centralPoint, ", coord", coord);
 		setLatOff(coord.getLatitude() - centralPoint.getLatitude());
 		setLonOff(coord.getLongitude() - centralPoint.getLongitude());
 	}
Index: src/uk/me/parabola/mkgmap/general/MapLine.java
===================================================================
--- src/uk/me/parabola/mkgmap/general/MapLine.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/general/MapLine.java	(working copy)
@@ -77,7 +77,7 @@
 		for (Coord co : points) {
 			if (last != null && last.equals(co)) {
 				if (log.isInfoEnabled())
-					log.info("Line", getName() , "has consecutive equal points at" , co.toDegreeString());
+					log.info("Line", getName() , "has consecutive equal points at" , co);
 			} else {
 				addToBounds(co);
 				last = co;
Index: src/uk/me/parabola/mkgmap/main/StyleTester.java
===================================================================
--- src/uk/me/parabola/mkgmap/main/StyleTester.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/main/StyleTester.java	(working copy)
@@ -415,7 +415,7 @@
 
 		sb.append(' ');
 		for (Coord co : el.getPoints())
-			sb.append(String.format("(%s),", co));
+			sb.append(String.format("(%s),", co.toGarminString()));
 
 		return sb.toString();
 	}
Index: src/uk/me/parabola/mkgmap/osmstyle/RoadMerger.java
===================================================================
--- src/uk/me/parabola/mkgmap/osmstyle/RoadMerger.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/osmstyle/RoadMerger.java	(working copy)
@@ -124,7 +124,7 @@
 		Way way1 = road1.getWay();
 		Way way2 = road2.getWay();
 		if (way1.getFirstPoint() == mergePoint) {
-			assert reverseAllowed : "bad reverse at " + mergePoint.toDegreeString();
+			assert reverseAllowed : "bad reverse at " + mergePoint;
 			Collections.reverse(way1.getPoints());
 			
 		}
@@ -241,7 +241,7 @@
 						double angle = getAngle(mergePoint, road1.getWay(), road2.getWay());
 						if (log.isDebugEnabled()) {
 							log.debug("Road", road1.getWay().getId(), "and road", road2.getWay().getId(),
-									"are mergeable with angle", angle, "at", mergePoint.toDegreeString());
+									"are mergeable with angle", angle, "at", mergePoint);
 						}
 						if (angle < bestAngle) {
 							mergeRoad1 = road1;
@@ -261,7 +261,7 @@
 				// yes!! => merge them
 				if (log.isDebugEnabled()) {
 					log.debug("Merging", mergeRoad1.getWay().getId(), "and", mergeRoad2.getWay().getId(), "at",
-							mergePoint.toDegreeString(), "with angle", bestAngle);
+							mergePoint, "with angle", bestAngle);
 				}
 				mergeRoads(mergePoint, mergeRoad1, mergeRoad2);
 				numMerges++;
Index: src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java
===================================================================
--- src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java	(working copy)
@@ -841,7 +841,7 @@
 								if (!pw1.getOnCountryBorder()) {
 									++countChg;
 									if (!pw1.getOnBoundary())
-										log.info("road intersects admin boundary, changing existing node to external routing node at",pw1.toDegreeString());
+										log.info("road intersects admin boundary, changing existing node to external routing node at", pw1);
 								}
 								pw1.setOnCountryBorder(true);
 							} else if (dist2 < dist1 && dist2 < 1) {
@@ -848,7 +848,7 @@
 								if (!pw2.getOnCountryBorder()) {
 									++countChg;
 									if (!pw2.getOnBoundary())
-										log.info("road intersects admin boundary, changing existing node to external routing node at",pw2.toDegreeString());
+										log.info("road intersects admin boundary, changing existing node to external routing node at", pw2);
 								}
 								pw2.setOnCountryBorder(true);
 							} else {
@@ -861,7 +861,7 @@
 									is = replacement;
 								}
 								is.setOnCountryBorder(true);
-								log.info("road intersects admin boundary, adding external routing node at",is.toDegreeString());
+								log.info("road intersects admin boundary, adding external routing node at", is);
 								
 								way.getPoints().add(pos, is);
 								changed = true;
Index: src/uk/me/parabola/mkgmap/osmstyle/WrongAngleFixer.java
===================================================================
--- src/uk/me/parabola/mkgmap/osmstyle/WrongAngleFixer.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/osmstyle/WrongAngleFixer.java	(working copy)
@@ -422,7 +422,7 @@
 					Coord p = points.get(i);
 					if (p.isToRemove()) {
 						if (pass >= maxPass - 1) {
-							log.warn("removed point in last pass.", way.getBasicLogInformation(), p.toDegreeString());
+							log.warn("removed point in last pass.", way.getBasicLogInformation(), p);
 						}
 						points.remove(i);
 						anotherPassRequired = true;
@@ -446,7 +446,7 @@
 					}
 					p = replacement;
 					if (pass >= maxPass - 1) {
-						log.warn("changed point in last pass.", way.getBasicLogInformation(), p.toDegreeString());
+						log.warn("changed point in last pass.", way.getBasicLogInformation(), p);
 					}
 					// replace point in way
 					points.set(i, p);
@@ -675,7 +675,7 @@
 					} else if (c1.equals(c2)) {
 						// spike / overlap
 						log.debug("pass", pass, "roads=" + (cw.isRoad()),
-								"extra remove to remove spike or overlap near", cm.toDegreeString());
+								"extra remove to remove spike or overlap near", cm);
 						keepThis = false;
 
 					}
@@ -685,8 +685,8 @@
 					continue;
 				}
 				if (log.isDebugEnabled()) {
-					log.debug("removing obsolete point on almost straight segment in", way.getBasicLogInformation(), "at",
-							cm.toDegreeString());
+					log.debug("removing obsolete point on almost straight segment in", way.getBasicLogInformation(),
+							"at", cm);
 				}
 				if (DEBUG_PATH != null) {
 					obsoletePoints.add(cm);
@@ -814,7 +814,7 @@
 
 		@Override
 		public String toString() {
-			return "CenterOfAngle [id=" + id + " " + center.toString() + " " + center.toDegreeString() + ", wasMerged="
+			return "CenterOfAngle [id=" + id + " " + center.toString() + " " + center + ", wasMerged="
 					+ wasMerged + ", num Neighbours=" + neighbours.size() + "]";
 		}
 
@@ -978,7 +978,7 @@
 					for (Coord altCenter : altPositions) {
 						if (dupCheck.contains(altCenter)) {
 							log.debug("pass", pass, 
-									"extra move to remove spike or overlap near", currentCenter.toDegreeString());
+									"extra move to remove spike or overlap near", currentCenter);
 							replaceCoord(currentCenter, altCenter, replacements);
 							return true;
 						}
Index: src/uk/me/parabola/mkgmap/osmstyle/housenumber/ExtNumbers.java
===================================================================
--- src/uk/me/parabola/mkgmap/osmstyle/housenumber/ExtNumbers.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/osmstyle/housenumber/ExtNumbers.java	(working copy)
@@ -644,7 +644,7 @@
 				if (log.isDebugEnabled()){
 					log.debug("solution: split segment with length",formatLen(segmentLength),"at",formatLen(usedFraction * segmentLength));
 					double distToLine = toAdd.getDisplayedCoord().distToLineSegment(c1.getDisplayedCoord(), c2.getDisplayedCoord());					
-					log.info("adding number node at",toAdd.toDegreeString(),"to split, dist to line is",formatLen(distToLine));
+					log.info("adding number node at", toAdd, "to split, dist to line is", formatLen(distToLine));
 				}
 				doSplit = true;
 				splitSegment = seg+1;
@@ -889,7 +889,7 @@
 				return this;
 			}
 			if (log.isInfoEnabled())
-				log.info("adding number node at",toAdd.toDegreeString(),"to split, dist to line is",formatLen(bestDist));
+				log.info("adding number node at", toAdd, "to split, dist to line is", formatLen(bestDist));
 			action = "add";
 			this.endInRoad = addAsNumberNode(startInRoad + 1, toAdd);
 			int forcedSegment = - 1;
Index: src/uk/me/parabola/mkgmap/osmstyle/housenumber/HousenumberGenerator.java
===================================================================
--- src/uk/me/parabola/mkgmap/osmstyle/housenumber/HousenumberGenerator.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/osmstyle/housenumber/HousenumberGenerator.java	(working copy)
@@ -1135,9 +1135,9 @@
 						double distToOld = old.getLocation().distance(house.getLocation()); 
 						if (distToOld > MAX_DISTANCE_SAME_NUM) {
 							if (old.isInterpolated())
-								log.info("conflict caused by addr:interpolation way",streetName,hivl,"and interpolated address",old,"at",old.getLocation().toDegreeString());
+								log.info("conflict caused by addr:interpolation way", streetName, hivl, "and interpolated address", old, "at", old.getLocation());
 							else 
-								log.info("conflict caused by addr:interpolation way",streetName,hivl,"and address element",old,"at",old.getLocation().toDegreeString());
+								log.info("conflict caused by addr:interpolation way", streetName, hivl, "and address element", old, "at", old.getLocation());
 							dupCount++;
 							if (!ignoreGenOnly) {
 								old.setIgnored(true);
Index: src/uk/me/parabola/mkgmap/osmstyle/housenumber/HousenumberGroup.java
===================================================================
--- src/uk/me/parabola/mkgmap/osmstyle/housenumber/HousenumberGroup.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/osmstyle/housenumber/HousenumberGroup.java	(working copy)
@@ -161,7 +161,7 @@
 			else {
 				if (log.isInfoEnabled()){
 					double distLine = pointToUse.distToLineSegment(c1.getDisplayedCoord(), c2.getDisplayedCoord());
-					log.info("adding number nodes at",pointToUse.toDegreeString(),"to optimize address search", "dist to line is", HousenumberGenerator.formatLen(distLine));
+					log.info("adding number nodes at", pointToUse, "to optimize address search", "dist to line is", HousenumberGenerator.formatLen(distLine));
 				}
 				timesToAdd = 2;
 			}
Index: src/uk/me/parabola/mkgmap/osmstyle/housenumber/HousenumberRoad.java
===================================================================
--- src/uk/me/parabola/mkgmap/osmstyle/housenumber/HousenumberRoad.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/osmstyle/housenumber/HousenumberRoad.java	(working copy)
@@ -198,7 +198,7 @@
 			if (group.findSegment(streetName, groups)){
 				nodesAdded = true;
 				if (log.isDebugEnabled())
-					log.debug("added",getRoad().getPoints().size() - oldNumPoints,"number node(s) at",group.linkNode.toDegreeString(),"for group",group,"in road",getRoad());
+					log.debug("added",getRoad().getPoints().size() - oldNumPoints,"number node(s) at",group.linkNode,"for group",group,"in road",getRoad());
 				oldNumPoints = getRoad().getPoints().size();
 				int minSeg = group.minSeg;
 				for (HousenumberMatch house : this.houseNumbers){
@@ -209,7 +209,7 @@
 			} else {
 				if(group.linkNode != null){
 					if (log.isDebugEnabled())
-						log.debug("used existing zero-length-segment at",group.linkNode.toDegreeString(),"for group",group,"in road",getRoad());
+						log.debug("used existing zero-length-segment at",group.linkNode,"for group",group,"in road",getRoad());
 				}
 			}
 		}
Index: src/uk/me/parabola/mkgmap/reader/hgt/HGTConverter.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/hgt/HGTConverter.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/reader/hgt/HGTConverter.java	(working copy)
@@ -175,7 +175,7 @@
 			double lon = lon32 * FACTOR;
 			double lat = lat32 * FACTOR;
 			Coord c = new Coord(lat, lon);
-			log.warn("height interpolation returns void at", c.toDegreeString());
+			log.warn("height interpolation returns void at", c);
 		}
 		return h;
 	}
Index: src/uk/me/parabola/mkgmap/reader/osm/Node.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/osm/Node.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/reader/osm/Node.java	(working copy)
@@ -38,7 +38,7 @@
 
 	@Override
 	public String toString() {
-		return super.toString() + " @ " + (location == null ? "unknown" : location.toDegreeString());
+		return super.toString() + " @ " + (location == null ? "unknown" : location);
 	}
 
 	@Override
Index: src/uk/me/parabola/mkgmap/reader/osm/POIGeneratorHook.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/osm/POIGeneratorHook.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/reader/osm/POIGeneratorHook.java	(working copy)
@@ -455,7 +455,7 @@
 								if (relName.equals(pName)){
 									adminCentre = (Node) el;
 									if (log.isDebugEnabled())
-										log.debug("using admin_centre node as location for POI for rel",r.getId(),relName,"at",((Node) el).getLocation().toDegreeString());
+										log.debug("using admin_centre node as location for POI for rel",r.getId(),relName,"at",((Node) el).getLocation());
 								}
 							}
 						} else if ("label".equals(role)){
@@ -462,7 +462,7 @@
 							String label = nameFinder.getName(el);
 							if (relName.equals(label)){
 								labelPOI = (Node) el;
-								log.debug("using label node as location for POI for rel",r.getId(),relName,"at",((Node) el).getLocation().toDegreeString());
+								log.debug("using label node as location for POI for rel", r.getId(), relName, "at", ((Node) el).getLocation());
 								break;
 							} else {
 								log.warn("rel",r.toBrowseURL(),",node with role label is ignored because it has a different name");
Index: src/uk/me/parabola/mkgmap/reader/osm/RestrictionRelation.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/osm/RestrictionRelation.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/reader/osm/RestrictionRelation.java	(working copy)
@@ -361,7 +361,7 @@
 			else if (way.getLastPoint() == v)
 				v2 = way.getFirstPoint();
 			else {
-				log.warn(msgPrefix, "'via' way", way.toBrowseURL(), "doesn't start or end at", v.toDegreeString());
+				log.warn(msgPrefix, "'via' way", way.toBrowseURL(), "doesn't start or end at", v);
 				valid = false;
 			}
 			viaPoints.add(v2);
Index: src/uk/me/parabola/mkgmap/reader/osm/SeaGenerator.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/osm/SeaGenerator.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/reader/osm/SeaGenerator.java	(working copy)
@@ -424,7 +424,7 @@
 						int minLat = -1 * (PRECOMP_RASTER * h - MAX_LAT);
 						int minLon = -1 * (PRECOMP_RASTER * w - MAX_LON);
 						Coord c = new Coord(minLat + PRECOMP_RASTER / 2, minLon + PRECOMP_RASTER / 2);
-						log.error("Precomp sea data seems to be wrong, " + err + " around " + c.toDegreeString()
+						log.error("Precomp sea data seems to be wrong, " + err + " around " + c
 								+ ", index key is " + minLat + "_" + minLon);
 					}
 				}
@@ -1492,7 +1492,7 @@
 				thisStatus = +1;
 			}
 			if (thisStatus == lastStatus)
-				log.error("Adjacent coastlines hit tile edge in same direction at", getPoint(tileBounds, lastHit).toDegreeString(), "and", getPoint(tileBounds, aHit).toDegreeString(), segment);
+				log.error("Adjacent coastlines hit tile edge in same direction at", getPoint(tileBounds, lastHit), "and", getPoint(tileBounds, aHit), segment);
 			lastStatus = thisStatus;
 			lastHit = aHit;
 		}
Index: src/uk/me/parabola/mkgmap/reader/osm/Way.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/osm/Way.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/reader/osm/Way.java	(working copy)
@@ -174,8 +174,7 @@
 	public String toString() {
 		StringBuilder sb = new StringBuilder(super.toString());
 		if (getName() != null) {
-			sb.append(' ');
-			sb.append(getName());
+			sb.append(' ').append(getName());
 		}
 		if (points.isEmpty())
 			sb.append(" empty");
@@ -182,18 +181,13 @@
 		else {
 			Coord coord = getFirstPoint();
 			if (hasEqualEndPoints()) {
-				sb.append(" starting and ending at ");
-				sb.append(coord.toDegreeString());
+				sb.append(" starting and ending at ").append(coord);
 			}
 			else {
-				sb.append(" starting at ");
-				sb.append(coord.toDegreeString());
-				sb.append(" and ending at ");
-				sb.append(getLastPoint().toDegreeString());
+				sb.append(" starting at ").append(coord).append(" and ending at ").append(getLastPoint());
 			}
 		}
-		sb.append(' ');
-		sb.append(toTagString());
+		sb.append(' ').append(toTagString());
 		return sb.toString();
 	}
 
Index: src/uk/me/parabola/mkgmap/reader/test/AllElements.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/test/AllElements.java	(revision 4734)
+++ src/uk/me/parabola/mkgmap/reader/test/AllElements.java	(working copy)
@@ -189,7 +189,7 @@
 
 				if (configProps.containsKey("verbose"))
 					System.out.println("Generated POI " + GType.formatType(type) + " at "
-							+ point.getLocation().toDegreeString() + " " + point.getName());
+							+ point.getLocation() + " " + point.getName());
 				mapper.addToBounds(point.getLocation()); // XXX shouldn't be needed.
 			}
 		}
@@ -216,7 +216,7 @@
 				coords.add(co);
 				mapper.addToBounds(co);
 				if (configProps.containsKey("verbose"))
-					System.out.println("Generated line " + GType.formatType(type) + " at " + co.toDegreeString() + " " + line.getName());
+					System.out.println("Generated line " + GType.formatType(type) + " at " + co + " " + line.getName());
 
 				co = new Coord(baseLat + ELEMENT_SIZE, baseLong + ELEMENT_SIZE);
 				coords.add(co);
@@ -261,7 +261,7 @@
 				coords.add(co);
 				mapper.addToBounds(co);
 				if (configProps.containsKey("verbose"))
-					System.out.println("Generated polygon " + GType.formatType(type) + " at " + co.toDegreeString() + " " + shape.getName());
+					System.out.println("Generated polygon " + GType.formatType(type) + " at " + co + " " + shape.getName());
 				
 				co = new Coord(baseLat + ELEMENT_SIZE, baseLong);
 				coords.add(co);
