--- old/src/share/classes/java/awt/dnd/DropTarget.java 2013-08-21 13:02:29.353320500 +0400 +++ new/src/share/classes/java/awt/dnd/DropTarget.java 2013-08-21 13:02:29.206312100 +0400 @@ -848,7 +848,7 @@ * The delegate */ - private transient DropTargetListener dtListener; + protected transient DropTargetListener dtListener; /* * The FlavorMap --- old/src/share/classes/javax/swing/TransferHandler.java 2013-08-21 13:02:31.329433500 +0400 +++ new/src/share/classes/javax/swing/TransferHandler.java 2013-08-21 13:02:31.182425100 +0400 @@ -28,6 +28,7 @@ import java.awt.event.*; import java.awt.datatransfer.*; import java.awt.dnd.*; +import java.awt.peer.ComponentPeer; import java.beans.*; import java.lang.reflect.*; import java.io.*; @@ -1232,6 +1233,14 @@ } } + @Override + public void removeNotify(ComponentPeer peer) { + super.removeNotify(peer); + if (dtListener != null && dtListener instanceof DropHandler) { + ((DropHandler)dtListener).cleanup(false); + } + } + // --- DropTargetListener methods (multicast) -------------------------- public void dragEnter(DropTargetDragEvent e) {