diff --git a/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java b/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
index bdc4aad..d072cb3 100644
--- a/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
+++ b/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
@@ -11,6 +11,7 @@ import java.awt.Color;
 import java.awt.Cursor;
 import java.awt.Graphics2D;
 import java.awt.Point;
+import java.awt.RenderingHints;
 import java.awt.Stroke;
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
@@ -51,6 +52,9 @@ import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.WaySegment;
 import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
+import org.openstreetmap.josm.data.osm.visitor.paint.MapRendererFactory;
+import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent;
+import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
 import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.MapView;
@@ -71,7 +75,7 @@ import org.openstreetmap.josm.tools.Utils;
 /**
  * Mapmode to add nodes, create and extend ways.
  */
-public class DrawAction extends MapMode implements MapViewPaintable, SelectionChangedListener, KeyPressReleaseListener, ModifierListener {
+public class DrawAction extends MapMode implements MapViewPaintable, SelectionChangedListener, KeyPressReleaseListener, ModifierListener, PreferenceChangedListener {
 
     private static final Color ORANGE_TRANSPARENT = new Color(Color.ORANGE.getRed(), Color.ORANGE.getGreen(), Color.ORANGE.getBlue(), 128);
     private static final double PHI = Math.toRadians(90);
@@ -117,6 +121,7 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
     private static final BasicStroke BASIC_STROKE = new BasicStroke(1);
 
     private static int snapToIntersectionThreshold;
+    private boolean antialiasing;
 
     /**
      * Constructs a new {@code DrawAction}.
@@ -137,7 +142,7 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
         backspaceAction = new BackSpaceAction();
         cursorJoinNode = ImageProvider.getCursor("crosshair", "joinnode");
         cursorJoinWay = ImageProvider.getCursor("crosshair", "joinway");
-
+        Main.pref.addPreferenceChangeListener(this);
         readPreferences();
         snapHelper.init();
     }
@@ -213,7 +218,6 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
         if (!isEnabled())
             return;
         super.enterMode();
-        readPreferences();
 
         // determine if selection is suitable to continue drawing. If it
         // isn't, set wayIsFinished to true to avoid superfluous repaints.
@@ -246,6 +250,12 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
         drawHelperLine = Main.pref.getBoolean("draw.helper-line", true);
         drawTargetHighlight = Main.pref.getBoolean("draw.target-highlight", true);
         snapToIntersectionThreshold = Main.pref.getInteger("edit.snap-intersection-threshold", 10);
+
+        if (MapRendererFactory.getInstance().isWireframeMapRendererActive()) {
+            antialiasing = Main.pref.getBoolean("mappaint.wireframe.use-antialiasing", false);
+        } else {
+            antialiasing = Main.pref.getBoolean("mappaint.use-antialiasing", true);
+        }
     }
 
     @Override
@@ -1126,6 +1136,9 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
             return;
 
         Graphics2D g2 = g;
+        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, antialiasing ?
+            RenderingHints.VALUE_ANTIALIAS_ON : RenderingHints.VALUE_ANTIALIAS_OFF);
+
         snapHelper.drawIfNeeded(g2, mv);
         if (!drawHelperLine || wayIsFinished || shift)
             return;
@@ -1794,4 +1807,9 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
             setEnabled(Main.map != null && Main.map.mapMode instanceof DrawAction);
         }
     }
+
+    @Override
+    public void preferenceChanged(PreferenceChangeEvent e) {
+        readPreferences();
+    }
 }
