Index: trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 17456)
+++ trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 17458)
@@ -680,4 +680,6 @@
     @Override
     protected void updateEnabledState() {
+        if (MainApplication.getLayerManager().getEditLayer() == null)
+            rememberMovements.clear();
         updateEnabledStateOnCurrentSelection();
     }
Index: trunk/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java	(revision 17456)
+++ trunk/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java	(revision 17458)
@@ -16,4 +16,5 @@
 import org.openstreetmap.josm.io.NetworkManager;
 import org.openstreetmap.josm.io.OnlineResource;
+import org.openstreetmap.josm.tools.Destroyable;
 import org.openstreetmap.josm.tools.SubclassFilteredCollection;
 import org.openstreetmap.josm.tools.Utils;
@@ -25,5 +26,5 @@
  * @since 13957 (signature)
  */
-public abstract class AbstractRelationAction extends AbstractAction implements IPrimitiveAction {
+public abstract class AbstractRelationAction extends AbstractAction implements IPrimitiveAction, Destroyable {
     /** relation collection */
     protected transient Collection<IRelation<?>> relations = Collections.<IRelation<?>>emptySet();
@@ -72,3 +73,8 @@
         putValue("help", helpId);
     }
+
+    @Override
+    public void destroy() {
+        relations = null;
+    }
 }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 17456)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 17458)
@@ -407,4 +407,5 @@
         ExpertToggleAction.removeExpertModeChangeListener(visibilityWidthListener);
         layerManager.removeLayerChangeListener(visibilityWidthListener);
+        activateLayerAction.destroy();
         cycleLayerUpAction.destroy();
         cycleLayerDownAction.destroy();
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/layer/ActivateLayerAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/layer/ActivateLayerAction.java	(revision 17456)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/layer/ActivateLayerAction.java	(revision 17458)
@@ -20,4 +20,5 @@
 import org.openstreetmap.josm.gui.util.MultikeyShortcutAction;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
+import org.openstreetmap.josm.tools.Destroyable;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -27,5 +28,5 @@
  */
 public final class ActivateLayerAction extends AbstractAction
-implements IEnabledStateUpdating, ActiveLayerChangeListener, MultikeyShortcutAction {
+implements IEnabledStateUpdating, ActiveLayerChangeListener, MultikeyShortcutAction, Destroyable {
     private transient Layer layer;
     private final transient Shortcut multikeyShortcut;
@@ -129,3 +130,8 @@
     }
 
+    @Override
+    public void destroy() {
+        layer = null;
+    }
+
 }
