diff --git a/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java b/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java
index be2f538..4f4885f 100644
--- a/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java
+++ b/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java
@@ -131,7 +131,9 @@ public class ParallelWayAction extends MapMode implements AWTEventListener, MapV
 
     @Override
     public void enterMode() {
-        // super.enterMode() updates the status line and cursor so we need our state to be set correctly
+        if (!isEnabled())
+            return;
+        // super.enterMode() updates the status line and cursor so we need our state to be set correctly early
         setMode(Mode.normal);
         pWays = null;
         updateAllPreferences(); // All default values should've been set now
@@ -147,6 +149,7 @@ public class ParallelWayAction extends MapMode implements AWTEventListener, MapV
             Toolkit.getDefaultToolkit().addAWTEventListener(this, AWTEvent.KEY_EVENT_MASK);
         } catch (SecurityException ex) {
         }
+
         sourceWays = new LinkedHashSet<Way>(getCurrentDataSet().getSelectedWays());
         for (Way w : sourceWays) {
             w.setHighlighted(true);
@@ -214,6 +217,11 @@ public class ParallelWayAction extends MapMode implements AWTEventListener, MapV
     }
 
     @Override
+    protected void updateEnabledState() {
+        setEnabled(getEditLayer() != null);
+    }
+
+    @Override
     public void eventDispatched(AWTEvent e) {
         if (Main.map == null || mv == null || !mv.isActiveLayerDrawable())
             return;
