Bug 143812 - [Memory View] Memory View's tree viewer handles any terminate event
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryBlocksTreeViewPane.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryBlocksTreeViewPane.java
index 04fe7b5..0199442 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryBlocksTreeViewPane.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryBlocksTreeViewPane.java
@@ -209,29 +209,32 @@
 			
 			if (event.getKind() == DebugEvent.TERMINATE)
 			{
-				IMemoryBlockRetrieval srcRetrieval = getMemoryBlockRetrieval(event.getSource());
-				if (srcRetrieval == fRetrieval)
+				// should only handle the terminate event if the target is terminated
+				if (event.getSource() instanceof IDebugTarget)
 				{
-					// #setInput must be done on the UI thread
-					UIJob job = new UIJob("setInput"){ //$NON-NLS-1$
-						public IStatus runInUIThread(IProgressMonitor monitor) {
+					IMemoryBlockRetrieval srcRetrieval = getMemoryBlockRetrieval(event.getSource());
+					if (srcRetrieval == fRetrieval)
+					{
+						// #setInput must be done on the UI thread
+						UIJob job = new UIJob("setInput"){ //$NON-NLS-1$
+							public IStatus runInUIThread(IProgressMonitor monitor) {
+								
+								// if viewpane is disposed, do not handle event							
+								if (fTreeViewer.getContentProvider() == null)
+									return  Status.OK_STATUS;
+								
+								fTreeViewer.setInput(null);
+								return Status.OK_STATUS;
+							}};
 							
-							// if viewpane is disposed, do not handle event							
-							if (fTreeViewer.getContentProvider() == null)
-								return  Status.OK_STATUS;
-							
-							fTreeViewer.setInput(null);
-							return Status.OK_STATUS;
-						}};
-						
-					job.setSystem(true);
-					job.schedule();
+						job.setSystem(true);
+						job.schedule();
+					}
+					
+					IMemoryBlockRetrieval retrieval = getMemoryBlockRetrieval(event.getSource());
+					if (retrieval != null)
+						fViewerState.remove(retrieval);
 				}
-				
-				IMemoryBlockRetrieval retrieval = getMemoryBlockRetrieval(event.getSource());
-				if (retrieval != null)
-					fViewerState.remove(retrieval);
-
 			}
 		}