Index: /trunk/src/org/openstreetmap/josm/gui/datatransfer/ClipboardUtils.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/datatransfer/ClipboardUtils.java	(revision 14499)
+++ /trunk/src/org/openstreetmap/josm/gui/datatransfer/ClipboardUtils.java	(revision 14500)
@@ -166,3 +166,13 @@
         }
     }
+
+    /**
+     * Clears the system clipboard.
+     * @return True if the clear was successful
+     * @since 14500
+     */
+    public static boolean clear() {
+        // Cannot simply set clipboard contents to null, see https://stackoverflow.com/a/18254949/2257172
+        return copy(new StringSelection(""));
+    }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandler.java	(revision 14499)
+++ /trunk/src/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandler.java	(revision 14500)
@@ -24,5 +24,5 @@
 
 /**
- * This transfer hanlder provides the ability to transfer OSM data. It allows you to receive files, primitives or tags.
+ * This transfer handler provides the ability to transfer OSM data. It allows you to receive files, primitives or tags.
  * @author Michael Zangl
  * @since 10604
Index: /trunk/src/org/openstreetmap/josm/gui/datatransfer/PrimitiveTransferable.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/datatransfer/PrimitiveTransferable.java	(revision 14499)
+++ /trunk/src/org/openstreetmap/josm/gui/datatransfer/PrimitiveTransferable.java	(revision 14500)
@@ -30,5 +30,5 @@
             TagTransferData.FLAVOR, DataFlavor.stringFlavor);
     private final PrimitiveTransferData primitives;
-    private OsmDataLayer sourceLayer;
+    private final OsmDataLayer sourceLayer;
 
     /**
Index: /trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 14499)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 14500)
@@ -14,4 +14,6 @@
 import java.awt.Rectangle;
 import java.awt.TexturePaint;
+import java.awt.datatransfer.Transferable;
+import java.awt.datatransfer.UnsupportedFlavorException;
 import java.awt.event.ActionEvent;
 import java.awt.geom.Area;
@@ -20,4 +22,5 @@
 import java.awt.image.BufferedImage;
 import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -95,4 +98,6 @@
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
+import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
+import org.openstreetmap.josm.gui.datatransfer.data.OsmLayerTransferData;
 import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
 import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
@@ -1054,4 +1059,19 @@
         data.removeSelectionListener(this);
         data.removeHighlightUpdateListener(this);
+        removeClipboardDataFor(this);
+    }
+
+    protected static void removeClipboardDataFor(OsmDataLayer osm) {
+        Transferable clipboardContents = ClipboardUtils.getClipboardContent();
+        if (clipboardContents != null) {
+            try {
+                Object o = clipboardContents.getTransferData(OsmLayerTransferData.OSM_FLAVOR);
+                if (o instanceof OsmLayerTransferData && osm.equals(((OsmLayerTransferData) o).getLayer())) {
+                    ClipboardUtils.clear();
+                }
+            } catch (UnsupportedFlavorException | IOException e) {
+                Logging.error(e);
+            }
+        }
     }
 
