Index: trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 4766)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 4767)
@@ -165,5 +165,4 @@
         initialMoveDelay = Main.pref.getInteger("edit.initial-move-delay", 200);
         initialMoveThreshold = Main.pref.getInteger("edit.initial-move-threshold", 5);
-        drawTargetHighlight = Main.pref.getBoolean("draw.target-highlight", true);
     }
 
@@ -175,4 +174,5 @@
         mv.setVirtualNodesEnabled(
                 Main.pref.getInteger("mappaint.node.virtual-size", 8) != 0);
+        drawTargetHighlight = Main.pref.getBoolean("draw.target-highlight", true);
         // This is required to update the cursors when ctrl/shift/alt is pressed
         try {
Index: trunk/src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java	(revision 4766)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java	(revision 4767)
@@ -12,4 +12,5 @@
 import javax.swing.Box;
 import javax.swing.JCheckBox;
+import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
@@ -34,7 +35,11 @@
     private JCheckBox virtualNodes = new JCheckBox(tr("Draw virtual nodes in select mode"));
     private JCheckBox inactive = new JCheckBox(tr("Draw inactive layers in other color"));
+
+    // Options that affect performance
+    private JCheckBox useHighlighting = new JCheckBox(tr("Highlight target ways and nodes"));
+    private JCheckBox drawHelperLine = new JCheckBox(tr("Draw rubber-band helper line"));
     private JCheckBox useAntialiasing = new JCheckBox(tr("Smooth map graphics (antialiasing)"));
     private JCheckBox outlineOnly = new JCheckBox(tr("Draw only outlines of areas"));
-
+    
     public void addGui(PreferenceTabbedPane gui) {
         gui.display.setPreferredSize(new Dimension(400,600));
@@ -80,9 +85,4 @@
         panel.add(segmentOrderNumber, GBC.eop().insets(20,0,0,0));
 
-        // antialiasing
-        useAntialiasing.setToolTipText(tr("Apply antialiasing to the map view resulting in a smoother appearance."));
-        useAntialiasing.setSelected(Main.pref.getBoolean("mappaint.use-antialiasing", true));
-        panel.add(useAntialiasing, GBC.eop().insets(20,0,0,0));
-
         // downloaded area
         sourceBounds.setToolTipText(tr("Draw the boundaries of data loaded from the server."));
@@ -100,9 +100,27 @@
         panel.add(inactive, GBC.eop().insets(20,0,0,0));
 
+        // antialiasing
+        useAntialiasing.setToolTipText(tr("Apply antialiasing to the map view resulting in a smoother appearance."));
+        useAntialiasing.setSelected(Main.pref.getBoolean("mappaint.use-antialiasing", true));
+
+        // highlighting
+        useHighlighting.setToolTipText(tr("Hightlight target nodes and ways while drawing or selecting"));
+        useHighlighting.setSelected(Main.pref.getBoolean("draw.target-highlight", true));
+
+        drawHelperLine.setToolTipText(tr("Draw rubber-band helper line"));
+        drawHelperLine.setSelected(Main.pref.getBoolean("draw.helper-line", true));
+        panel.add(drawHelperLine, GBC.eop().insets(20, 0, 0, 0));
+
         // outlineOnly
         outlineOnly.setSelected(Main.pref.getBoolean("draw.data.area_outline_only", false));
         outlineOnly.setToolTipText(tr("This option suppresses the filling of areas, overriding anything specified in the selected style."));
-        panel.add(outlineOnly, GBC.eol().insets(20,0,0,5));
 
+        if (Main.pref.getBoolean("expert", false)) {
+            panel.add(new JLabel(tr("Options that affect drawing performance")),GBC.eop().insets(5,10,0,0));
+            panel.add(useAntialiasing, GBC.eop().insets(20,5,0,0));
+            panel.add(useHighlighting, GBC.eop().insets(20,0,0,0));
+            panel.add(outlineOnly, GBC.eol().insets(20,0,0,5));
+        }
+        
         panel.add(Box.createVerticalGlue(), GBC.eol().fill(GBC.BOTH));
         scrollpane = new JScrollPane(panel);
@@ -121,4 +139,6 @@
         Main.pref.put("draw.data.inactive_color", inactive.isSelected());
         Main.pref.put("mappaint.use-antialiasing", useAntialiasing.isSelected());
+        Main.pref.put("draw.target-highlight", useHighlighting.isSelected());
+        Main.pref.put("draw.helper-line", drawHelperLine.isSelected());
         int vn = Main.pref.getInteger("mappaint.node.virtual-size", 8);
         if (virtualNodes.isSelected()) {
Index: trunk/src/org/openstreetmap/josm/gui/preferences/LafPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/LafPreference.java	(revision 4766)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/LafPreference.java	(revision 4767)
@@ -39,5 +39,4 @@
     private JCheckBox showID = new JCheckBox(tr("Show object ID in selection lists"));
     private JCheckBox showLocalizedName = new JCheckBox(tr("Show localized name in selection lists"));
-    private JCheckBox drawHelperLine = new JCheckBox(tr("Draw rubber-band helper line"));
     private JCheckBox modeless = new JCheckBox(tr("Modeless working (Potlatch style)"));
     private JCheckBox expert = new JCheckBox(tr("Expert mode"));
@@ -91,6 +90,4 @@
         showLocalizedName.setSelected(Main.pref.getBoolean("osm-primitives.localize-name", true));
 
-        drawHelperLine.setToolTipText(tr("Draw rubber-band helper line"));
-        drawHelperLine.setSelected(Main.pref.getBoolean("draw.helper-line", true));
 
         modeless.setToolTipText(tr("Do not require to switch modes (potlatch style workflow)"));
@@ -100,5 +97,4 @@
             panel.add(showID, GBC.eop().insets(20, 0, 0, 0));
             panel.add(showLocalizedName, GBC.eop().insets(20, 0, 0, 0));
-            panel.add(drawHelperLine, GBC.eop().insets(20, 0, 0, 0));
             panel.add(modeless, GBC.eop().insets(20, 0, 0, 0));
         }
@@ -128,5 +124,4 @@
         Main.pref.put("osm-primitives.showid", showID.isSelected());
         Main.pref.put("osm-primitives.localize-name", showLocalizedName.isSelected());
-        Main.pref.put("draw.helper-line", drawHelperLine.isSelected());
         Main.pref.put("modeless", modeless.isSelected());
         if(Main.pref.put("expert", expert.isSelected()))
