Index: src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 4732)
+++ src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(working copy)
@@ -164,7 +164,6 @@
         selectionManager = new SelectionManager(this, false, mv);
         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);
     }
 
     @Override
@@ -174,6 +173,7 @@
         mv.addMouseMotionListener(this);
         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 {
             Toolkit.getDefaultToolkit().addAWTEventListener(this, AWTEvent.KEY_EVENT_MASK);
Index: src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java
===================================================================
--- src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java	(revision 4732)
+++ src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java	(working copy)
@@ -11,6 +11,7 @@
 import javax.swing.BorderFactory;
 import javax.swing.Box;
 import javax.swing.JCheckBox;
+import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 
@@ -33,9 +34,13 @@
     private JCheckBox sourceBounds = new JCheckBox(tr("Draw boundaries of downloaded data"));
     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));
         gpxPanel = new GPXSettingsPanel();
@@ -79,11 +84,6 @@
         segmentOrderNumber.setSelected(Main.pref.getBoolean("draw.segment.order_number", false));
         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."));
         sourceBounds.setSelected(Main.pref.getBoolean("draw.data.downloaded_area", true));
@@ -99,6 +99,21 @@
         inactive.setSelected(Main.pref.getBoolean("draw.data.inactive_color", true));
         panel.add(inactive, GBC.eop().insets(20,0,0,0));
 
+        panel.add(new JLabel(tr("Options that affect drawing performance")),GBC.eop().insets(5,10,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,5,0,0));
+
+        // highlighting
+        useHighlighting.setToolTipText(tr("Hightlight target nodes and ways while drawing or selecting"));
+        useHighlighting.setSelected(Main.pref.getBoolean("draw.target-highlight", true));
+        panel.add(useHighlighting, GBC.eop().insets(20,0,0,0));
+
+        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."));
@@ -120,6 +135,8 @@
         Main.pref.put("draw.data.downloaded_area", sourceBounds.isSelected());
         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()) {
             if (vn < 1) {
Index: src/org/openstreetmap/josm/gui/preferences/LafPreference.java
===================================================================
--- src/org/openstreetmap/josm/gui/preferences/LafPreference.java	(revision 4732)
+++ src/org/openstreetmap/josm/gui/preferences/LafPreference.java	(working copy)
@@ -38,7 +38,6 @@
     private JCheckBox showSplashScreen = new JCheckBox(tr("Show splash screen at startup"));
     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"));
     private JCheckBox dynamicButtons = new JCheckBox(tr("Dynamic buttons in side menus"));
@@ -90,8 +89,6 @@
         showLocalizedName.setToolTipText(tr("Show localized name in selection lists, if available"));
         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)"));
         modeless.setSelected(Main.pref.getBoolean("modeless", false));
@@ -99,7 +96,6 @@
         if (Main.pref.getBoolean("expert", false)) {
             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));
         }
 
@@ -127,7 +123,6 @@
         Main.pref.put("draw.splashscreen", showSplashScreen.isSelected());
         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()))
             mod = true;
