Index: trunk/src/org/openstreetmap/josm/data/coor/LatLon.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/coor/LatLon.java	(revision 7234)
+++ trunk/src/org/openstreetmap/josm/data/coor/LatLon.java	(revision 7236)
@@ -56,4 +56,5 @@
     private static DecimalFormat cDmMinuteFormatter = new DecimalFormat("00.000");
     public static final DecimalFormat cDdFormatter;
+    public static final DecimalFormat cDdHighPecisionFormatter;
     static {
         // Don't use the localized decimal separator. This way we can present
@@ -61,4 +62,6 @@
         cDdFormatter = (DecimalFormat) NumberFormat.getInstance(Locale.UK);
         cDdFormatter.applyPattern("###0.0######");
+        cDdHighPecisionFormatter = (DecimalFormat) NumberFormat.getInstance(Locale.UK);
+        cDdHighPecisionFormatter.applyPattern("###0.0##########");
     }
 
Index: trunk/src/org/openstreetmap/josm/io/OsmWriter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmWriter.java	(revision 7234)
+++ trunk/src/org/openstreetmap/josm/io/OsmWriter.java	(revision 7236)
@@ -13,4 +13,5 @@
 
 import org.openstreetmap.josm.data.coor.CoordinateFormat;
+import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.Changeset;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -182,6 +183,6 @@
         } else {
             if (n.getCoor() != null) {
-                out.print(" lat='" +n.getCoor().latToString(CoordinateFormat.DECIMAL_DEGREES)+
-                          "' lon='"+n.getCoor().lonToString(CoordinateFormat.DECIMAL_DEGREES)+"'");
+                out.print(" lat='"+LatLon.cDdHighPecisionFormatter.format(n.getCoor().lat())+
+                          "' lon='"+LatLon.cDdHighPecisionFormatter.format(n.getCoor().lon())+"'");
             }
             addTags(n, "node", true);
