bug 8693
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java
index 2db02d6..1be80e6 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java
@@ -184,6 +184,11 @@
 	 * @see IEvaluationListener#evaluationComplete(IEvaluationResult)
 	 */
 	public void evaluationComplete(final IEvaluationResult result) {
+		// if plug-in has shutdown, ignore - see bug# 8693
+		if (JDIDebugUIPlugin.getDefault() == null) {
+			return;
+		}
+		
 		final IJavaValue value= result.getValue();
 		if (result.hasErrors() || value != null) {
 			final Display display= JDIDebugUIPlugin.getStandardDisplay();
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/LocalEvaluationEngine.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/LocalEvaluationEngine.java
index 276614c..76f48ef 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/LocalEvaluationEngine.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/LocalEvaluationEngine.java
@@ -56,7 +56,7 @@
 import org.eclipse.jdt.internal.debug.core.model.JDIValue;
 
 import com.sun.jdi.InvocationException;
-import com.sun.jdi.ObjectReference; 
+import com.sun.jdi.ObjectReference;
 
 /**
  * An evaluation engine that deploys class files locally
@@ -916,7 +916,10 @@
 	 * and reset for the next evaluation.
 	 */
 	protected void evaluationComplete() {
-		getListener().evaluationComplete(getResult());
+		// only notify if plug-in not yet shutdown (bug# 8693)
+		if (JDIDebugPlugin.getDefault() != null)  {
+			getListener().evaluationComplete(getResult());
+		}
 		evaluationEnded();
 		reset();
 		if (isDisposed()) {
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationThread.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationThread.java
index 80e13a2..427b7d1 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationThread.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationThread.java
@@ -209,7 +209,10 @@
 	 */
 	private void evaluationFinished(IEvaluationResult result) {
 		fEngine.evaluationThreadFinished(this);
-		fListener.evaluationComplete(result);
+		// only notify if plugin not yet shutdown - bug# 8693
+		if(JDIDebugPlugin.getDefault() != null) {
+			fListener.evaluationComplete(result);
+		}
 		fExpression= null;
 		fContext= null;
 		fThread= null;