29456
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/motif/org/eclipse/swt/dnd/DropTarget.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/motif/org/eclipse/swt/dnd/DropTarget.java
index e51ec80..d50a164 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/motif/org/eclipse/swt/dnd/DropTarget.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/motif/org/eclipse/swt/dnd/DropTarget.java
@@ -181,7 +181,15 @@
 	

 	this.addListener (SWT.Dispose, new Listener () {

 		public void handleEvent (Event event) {

-			unregisterDropTarget();

+			Display display = event.display;

+			display.asyncExec(new Runnable() {

+				public void run() {

+					if (DropTarget.this.control == null || 

+						DropTarget.this.control.isDisposed()) return;

+			

+					unregisterDropTarget();

+				}

+			});

 			onDispose();

 		}

 	});