Index: /trunk/src/org/openstreetmap/josm/data/osm/Node.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/Node.java	(revision 3158)
+++ /trunk/src/org/openstreetmap/josm/data/osm/Node.java	(revision 3159)
@@ -196,3 +196,7 @@
         // Do nothing for now, but in future replace CachedLatLon with simple doubles and update precalculated EastNorth value here
     }
+
+    public boolean isJunctionNode() {
+        return (OsmPrimitive.getFilteredList(getReferrers(), Way.class)).size() > 1;
+    }
 }
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java	(revision 3158)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java	(revision 3159)
@@ -22,9 +22,9 @@
     private int showIconsDistance;
     private int selectedNodeSize;
-    private int taggedNodeSize;
+    private int junctionNodeSize;
     private int unselectedNodeSize;
     private boolean fillSelectedNode;
     private boolean fillUnselectedNode;
-
+    private boolean fillTaggedNode;
     private Color selectedColor;
     private Color highlightColor;
@@ -57,7 +57,8 @@
         selectedNodeSize = Main.pref.getInteger("mappaint.node.selected-size", 5);
         unselectedNodeSize = Main.pref.getInteger("mappaint.node.unselected-size", 3);
-        taggedNodeSize = Main.pref.getInteger("mappaint.node.tagged-size", 5);
+        junctionNodeSize = Main.pref.getInteger("mappaint.node.junction-size", 5);
         fillSelectedNode = Main.pref.getBoolean("mappaint.node.fill-selected", true);
         fillUnselectedNode = Main.pref.getBoolean("mappaint.node.fill-unselected", false);
+        fillTaggedNode = Main.pref.getBoolean("mappaint.node.fill-tagged", true);
     }
 
@@ -126,6 +127,6 @@
     }
 
-    public int getTaggedNodeSize() {
-        return taggedNodeSize;
+    public int getJunctionNodeSize() {
+        return junctionNodeSize;
     }
 
@@ -141,3 +142,7 @@
         return fillUnselectedNode;
     }
+
+    public boolean isFillTaggedNode() {
+        return fillTaggedNode;
+    }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/SimpleNodeElemStyle.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/SimpleNodeElemStyle.java	(revision 3158)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/SimpleNodeElemStyle.java	(revision 3159)
@@ -25,10 +25,11 @@
         } else if (selected) {
             painter.drawNode(n, settings.getSelectedColor(), settings.getSelectedNodeSize(), settings.isFillSelectedNode(), name);
-        } else if (n.isTagged()) {
-            painter.drawNode(n, settings.getNodeColor(), settings.getTaggedNodeSize(), settings.isFillUnselectedNode(), name);
-        } else if (painter.isInactive() || n.isDisabled()) {
-            painter.drawNode(n, settings.getInactiveColor(), settings.getUnselectedNodeSize(), settings.isFillUnselectedNode(), name);
         } else {
-            painter.drawNode(n, settings.getNodeColor(), settings.getUnselectedNodeSize(), settings.isFillUnselectedNode(), name);
+            painter.drawNode(
+                n,
+                (painter.isInactive() || n.isDisabled()) ? settings.getInactiveColor() : settings.getNodeColor(),
+                n.isJunctionNode() ? settings.getJunctionNodeSize() : settings.getUnselectedNodeSize(),
+                n.isTagged() ? settings.isFillTaggedNode() : settings.isFillUnselectedNode(),
+                name);
         }
     }
