Index: /trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java	(revision 12836)
+++ /trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java	(revision 12837)
@@ -131,11 +131,4 @@
             return;
 
-        int numberOfNodesInCircle = Main.pref.getInteger("createcircle.nodecount", 16);
-        if (numberOfNodesInCircle < 1) {
-            numberOfNodesInCircle = 1;
-        } else if (numberOfNodesInCircle > 100) {
-            numberOfNodesInCircle = 100;
-        }
-
         DataSet ds = getLayerManager().getEditDataSet();
         Collection<OsmPrimitive> sel = ds.getSelected();
@@ -193,4 +186,15 @@
         double r = Math.sqrt(Math.pow(center.east()-n1.east(), 2) +
                 Math.pow(center.north()-n1.north(), 2));
+
+        // see #10777
+        LatLon ll1 = Main.getProjection().eastNorth2latlon(n1);
+        LatLon ll2 = Main.getProjection().eastNorth2latlon(center);
+
+        double radiusInMeters = ll1.greatCircleDistance(ll2);
+
+        int numberOfNodesInCircle = (int) Math.ceil(6.0 * Math.pow(radiusInMeters, 0.5));
+        if (numberOfNodesInCircle < 6) {
+           numberOfNodesInCircle = 6;
+        }
 
         // Order nodes by angle
