Index: src/org/openstreetmap/josm/gui/mappaint/SimpleNodeElemStyle.java
===================================================================
--- src/org/openstreetmap/josm/gui/mappaint/SimpleNodeElemStyle.java	(revision 3174)
+++ src/org/openstreetmap/josm/gui/mappaint/SimpleNodeElemStyle.java	(working copy)
@@ -24,12 +24,14 @@
             painter.drawNode(n, settings.getHighlightColor(), settings.getSelectedNodeSize(), settings.isFillSelectedNode(), name);
         } else if (selected) {
             painter.drawNode(n, settings.getSelectedColor(), settings.getSelectedNodeSize(), settings.isFillSelectedNode(), name);
+        } else if (n.isTagged()) {
+            painter.drawNode(n, settings.getTaggedColor(), settings.getTaggedNodeSize(), settings.isFillTaggedNode(), name);
         } else {
             painter.drawNode(
                 n,
-                (painter.isInactive() || n.isDisabled()) ? settings.getInactiveColor() : settings.getNodeColor(),
+                (painter.isInactive() || n.isDisabled()) ? settings.getInactiveColor() : (n.isJunctionNode() ? settings.getJunctionColor() : settings.getNodeColor()),
                 n.isJunctionNode() ? settings.getJunctionNodeSize() : settings.getUnselectedNodeSize(),
-                n.isTagged() ? settings.isFillTaggedNode() : settings.isFillUnselectedNode(),
+                n.isTagged() ? settings.isFillTaggedNode() : (n.isJunctionNode() ? settings.isFillJunctionNode() : settings.isFillUnselectedNode()),
                 name);
         }
     }
Index: src/org/openstreetmap/josm/data/osm/visitor/paint/SimplePaintVisitor.java
===================================================================
--- src/org/openstreetmap/josm/data/osm/visitor/paint/SimplePaintVisitor.java	(revision 3174)
+++ src/org/openstreetmap/josm/data/osm/visitor/paint/SimplePaintVisitor.java	(working copy)
@@ -61,6 +61,7 @@
     protected Color backgroundColor;
     protected Color highlightColor;
     protected Color taggedColor;
+    protected Color junctionColor;
     protected boolean showDirectionArrow;
     protected boolean showRelevantDirectionsOnly;
     protected boolean showHeadArrowOnly;
@@ -68,12 +69,15 @@
     protected boolean fillSelectedNode;
     protected boolean fillUnselectedNode;
     protected boolean fillTaggedNode;
+    protected boolean fillJunctionNode;
     protected int selectedNodeSize;
     protected int selectedNodeRadius;
     protected int unselectedNodeSize;
     protected int unselectedNodeRadius;
     protected int junctionNodeSize;
     protected int junctionNodeRadius;
+    protected int taggedNodeSize;
+    protected int taggedNodeRadius;
     protected int defaultSegmentWidth;
     protected int virtualNodeSize;
     protected int virtualNodeSpace;
@@ -97,6 +101,7 @@
         backgroundColor = PaintColors.BACKGROUND.get();
         highlightColor = PaintColors.HIGHLIGHT.get();
         taggedColor = PaintColors.TAGGED.get();
+        junctionColor = PaintColors.JUNCTION.get();
     }
 
     protected void getSettings(boolean virtual) {
@@ -111,9 +116,12 @@
         unselectedNodeRadius = unselectedNodeSize / 2;
         junctionNodeSize = settings.getJunctionNodeSize();
         junctionNodeRadius = junctionNodeSize / 2;
+        taggedNodeSize = settings.getTaggedNodeSize();
+        taggedNodeRadius = taggedNodeSize / 2;
         defaultSegmentWidth = settings.getDefaultSegmentWidth();
         fillSelectedNode = settings.isFillSelectedNode();
         fillUnselectedNode = settings.isFillUnselectedNode();
+        fillJunctionNode = settings.isFillJunctionNode();
         fillTaggedNode = settings.isFillTaggedNode();
         virtualNodeSize = virtual ? Main.pref.getInteger("mappaint.node.virtual-size", 8) / 2 : 0;
         virtualNodeSpace = Main.pref.getInteger("mappaint.node.virtual-space", 70);
@@ -236,15 +244,17 @@
             drawNode(n, highlightColor, selectedNodeSize, unselectedNodeRadius, fillSelectedNode);
         } else if (ds.isSelected(n)) {
             drawNode(n, selectedColor, selectedNodeSize, selectedNodeRadius, fillSelectedNode);
+        } else if(n.isTagged()) {
+            drawNode(n, taggedColor, taggedNodeSize, taggedNodeRadius, fillTaggedNode);
         } else {
             boolean junction = n.isJunctionNode();
             drawNode(
                 n,
                 (inactive || n.isDisabled()) ? inactiveColor : 
-                    (n.isTagged() ? taggedColor : nodeColor),
+                    (n.isTagged() ? taggedColor : (junction ? junctionColor : nodeColor)),
                 junction ? junctionNodeSize : unselectedNodeSize,
                 junction ? junctionNodeRadius : unselectedNodeRadius,
-                n.isTagged() ? fillTaggedNode : fillUnselectedNode);
+                n.isTagged() ? fillTaggedNode : fillJunctionNode);
         }
     }
 
Index: src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java
===================================================================
--- src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java	(revision 3174)
+++ src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java	(working copy)
@@ -23,14 +23,17 @@
     private int selectedNodeSize;
     private int junctionNodeSize;
     private int unselectedNodeSize;
+    private int taggedNodeSize;
     private boolean fillSelectedNode;
     private boolean fillUnselectedNode;
     private boolean fillTaggedNode;
+    private boolean fillJunctionNode;
     private Color selectedColor;
     private Color highlightColor;
     private Color inactiveColor;
     private Color nodeColor;
     private Color taggedColor;
+    private Color junctionColor;
 
     private MapPaintSettings() {
         load();
@@ -48,6 +51,7 @@
         inactiveColor = PaintColors.INACTIVE.get();
         nodeColor = PaintColors.NODE.get();
         taggedColor = PaintColors.TAGGED.get();
+        junctionColor = PaintColors.JUNCTION.get();
 
         showOrderNumber = Main.pref.getBoolean("draw.segment.order_number", false);
         showHeadArrowOnly = Main.pref.getBoolean("draw.segment.head_only", false);
@@ -59,9 +63,11 @@
         selectedNodeSize = Main.pref.getInteger("mappaint.node.selected-size", 5);
         unselectedNodeSize = Main.pref.getInteger("mappaint.node.unselected-size", 3);
         junctionNodeSize = Main.pref.getInteger("mappaint.node.junction-size", 5);
+        taggedNodeSize = Main.pref.getInteger("mappaint.node.tagged-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);
+        fillJunctionNode = Main.pref.getBoolean("mappaint.node.fill-junction", false);
     }
 
     public void preferenceChanged(PreferenceChangeEvent e) {
@@ -104,6 +110,10 @@
         return taggedColor;
     }
 
+    public Color getJunctionColor() {
+        return junctionColor;
+    }
+
     public boolean isShowOrderNumber() {
         return showOrderNumber;
     }
@@ -140,6 +150,10 @@
         return unselectedNodeSize;
     }
 
+    public int getTaggedNodeSize() {
+        return taggedNodeSize;
+    }
+
     public boolean isFillSelectedNode() {
         return fillSelectedNode;
     }
@@ -148,6 +162,10 @@
         return fillUnselectedNode;
     }
 
+    public boolean isFillJunctionNode() {
+        return fillJunctionNode;
+    }
+
     public boolean isFillTaggedNode() {
         return fillTaggedNode;
     }
Index: src/org/openstreetmap/josm/data/osm/visitor/paint/PaintColors.java
===================================================================
--- src/org/openstreetmap/josm/data/osm/visitor/paint/PaintColors.java	(revision 3174)
+++ src/org/openstreetmap/josm/data/osm/visitor/paint/PaintColors.java	(working copy)
@@ -13,6 +13,7 @@
     INACTIVE(marktr("inactive"), Color.darkGray),
     SELECTED(marktr("selected"), Color.red),
     NODE(marktr("node"), Color.yellow),
+    JUNCTION(marktr("junction"), Color.yellow),
     TAGGED(marktr("tagged"), new Color(204, 255, 255)), // turquoise
     DEFAULT_WAY(marktr("way"),  new Color(0,0,128)), // dark blue
     RELATION(marktr("relation"), new Color(0,128,128)), // teal
