Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java	(revision 11089)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java	(revision 11090)
@@ -26,4 +26,6 @@
     /** Preference: should the segment numbers of ways be displayed */
     private boolean showOrderNumber;
+    /** Preference: should the segment numbers of ways be displayed on selected way */
+    private boolean showOrderNumberOnSelectedWay;
     /** Preference: should only the last arrow of a way be displayed */
     private boolean showHeadArrowOnly;
@@ -90,4 +92,5 @@
 
         showOrderNumber = Main.pref.getBoolean("draw.segment.order_number", false);
+        showOrderNumberOnSelectedWay = Main.pref.getBoolean("draw.segment.order_number.on_selected", false);
         showHeadArrowOnly = Main.pref.getBoolean("draw.segment.head_only", false);
 
@@ -233,4 +236,12 @@
     public boolean isShowOrderNumber() {
         return showOrderNumber;
+    }
+
+    /**
+     * Determines if the segment numbers of the selected way should be displayed
+     * @return {@code true} if the segment numbers of the selected way should be displayed
+     */
+    public boolean isShowOrderNumberOnSelectedWay() {
+        return showOrderNumberOnSelectedWay;
     }
 
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java	(revision 11089)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java	(revision 11090)
@@ -60,4 +60,6 @@
     /** Preference: should the segment numbers of ways be displayed */
     protected boolean showOrderNumber;
+    /** Preference: should the segment numbers of the selected be displayed */
+    protected boolean showOrderNumberOnSelectedWay;
     /** Preference: should selected nodes be filled */
     protected boolean fillSelectedNode;
@@ -134,4 +136,5 @@
         showHeadArrowOnly = settings.isShowHeadArrowOnly();
         showOrderNumber = settings.isShowOrderNumber();
+        showOrderNumberOnSelectedWay = settings.isShowOrderNumberOnSelectedWay();
         selectedNodeSize = settings.getSelectedNodeSize();
         unselectedNodeSize = settings.getUnselectedNodeSize();
@@ -321,5 +324,5 @@
                     drawSegment(lastP, p, wayColor,
                             showOnlyHeadArrowOnly ? !it.hasNext() : showThisDirectionArrow);
-                    if (showOrderNumber && !isInactiveMode) {
+                    if ((showOrderNumber || (showOrderNumberOnSelectedWay && w.isSelected())) && !isInactiveMode) {
                         drawOrderNumber(lastP, p, orderNumber, g.getColor());
                     }
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java	(revision 11089)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java	(revision 11090)
@@ -116,5 +116,6 @@
                 showOnlyHeadArrowOnly, showOneway, onewayReversed);
 
-        if (paintSettings.isShowOrderNumber() && !painter.isInactiveMode()) {
+        if ((paintSettings.isShowOrderNumber() || (paintSettings.isShowOrderNumberOnSelectedWay() && selected))
+                && !painter.isInactiveMode()) {
             int orderNumber = 0;
             lastN = null;
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/display/DrawingPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/display/DrawingPreference.java	(revision 11089)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/display/DrawingPreference.java	(revision 11090)
@@ -43,4 +43,5 @@
     private final JCheckBox onewayArrow = new JCheckBox(tr("Draw oneway arrows."));
     private final JCheckBox segmentOrderNumber = new JCheckBox(tr("Draw segment order numbers"));
+    private final JCheckBox segmentOrderNumberOnSelectedWay = new JCheckBox(tr("Draw segment order numbers on selected way"));
     private final JCheckBox sourceBounds = new JCheckBox(tr("Draw boundaries of downloaded data"));
     private final JCheckBox virtualNodes = new JCheckBox(tr("Draw virtual nodes in select mode"));
@@ -92,4 +93,6 @@
         segmentOrderNumber.setToolTipText(tr("Draw the order numbers of all segments within their way."));
         segmentOrderNumber.setSelected(Main.pref.getBoolean("draw.segment.order_number", false));
+        segmentOrderNumberOnSelectedWay.setToolTipText(tr("Draw the order numbers of all segments within their way."));
+        segmentOrderNumberOnSelectedWay.setSelected(Main.pref.getBoolean("draw.segment.order_number.on_selected", false));
 
         // downloaded area
@@ -136,4 +139,5 @@
         panel.add(onewayArrow, GBC.eop().insets(20, 0, 0, 0));
         panel.add(segmentOrderNumber, GBC.eop().insets(20, 0, 0, 0));
+        panel.add(segmentOrderNumberOnSelectedWay, GBC.eop().insets(20, 0, 0, 0));
 
         panel.add(new JLabel(tr("Select and draw mode options")),
@@ -176,4 +180,5 @@
         Main.pref.put("draw.oneway", onewayArrow.isSelected());
         Main.pref.put("draw.segment.order_number", segmentOrderNumber.isSelected());
+        Main.pref.put("draw.segment.order_number.on_selected", segmentOrderNumberOnSelectedWay.isSelected());
         Main.pref.put("draw.data.downloaded_area", sourceBounds.isSelected());
         Main.pref.put("draw.data.inactive_color", inactive.isSelected());
