diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/DisplayAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/DisplayAction.java
index 3ca9da3..8fa7832 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/DisplayAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/DisplayAction.java
@@ -20,7 +20,10 @@
 import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin;
 import org.eclipse.jdt.internal.debug.ui.display.IDataDisplay;
 import org.eclipse.jdt.internal.debug.ui.snippeteditor.JavaSnippetEditor;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.MessageBox;
 import org.eclipse.ui.IWorkbenchPart;
 
 /**
@@ -29,6 +32,11 @@
 public class DisplayAction extends EvaluateAction implements IValueDetailListener {
 	
 	/**
+	 * Used in evaluationTimedOut
+	 */
+	private boolean fKeepWaiting;
+	
+	/**
 	 * The debug model presentation used for computing toString
 	 */
 	private IDebugModelPresentation fPresentation= DebugUITools.newDebugModelPresentation(JDIDebugModel.getPluginIdentifier());
@@ -72,6 +80,27 @@
 		}
 	}
 	
+	/**
+	 * @see IEvaluationListener#evaluationTimedOut(IJavaThread)
+	 */
+	public boolean evaluationTimedOut(final IJavaThread thread) {
+		JDIDebugUIPlugin.getStandardDisplay().syncExec(new Runnable() {
+			public void run() {
+				boolean answer= MessageDialog.openQuestion(getShell(), "Evaluation timed out", "Do you want to suspend the evaluation? Answer no to keep waiting");
+				if (answer) {
+					try {
+						thread.suspend();
+					} catch (DebugException exception) {
+					}
+					fKeepWaiting= false;
+				} else {
+					fKeepWaiting= true; // Keep waiting
+				}
+			}
+		});
+		return fKeepWaiting;
+	}
+	
 	protected void insertResult(IJavaValue result, IJavaThread thread) {
 		
 		String resultString= " "; //$NON-NLS-1$
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/InspectAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/InspectAction.java
index 8d2ba27..75f29f0 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/InspectAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/InspectAction.java
@@ -10,6 +10,7 @@
 import org.eclipse.debug.core.DebugException;
 import org.eclipse.debug.core.DebugPlugin;
 import org.eclipse.debug.ui.IDebugUIConstants;
+import org.eclipse.jdt.debug.core.IJavaThread;
 import org.eclipse.jdt.debug.core.IJavaValue;
 import org.eclipse.jdt.debug.core.IJavaVariable;
 import org.eclipse.jdt.debug.eval.IEvaluationResult;
@@ -17,7 +18,6 @@
 import org.eclipse.jdt.internal.debug.ui.display.IDataDisplay;
 import org.eclipse.jdt.internal.debug.ui.display.JavaInspectExpression;
 import org.eclipse.jdt.internal.debug.ui.snippeteditor.JavaSnippetEditor;
-import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IViewPart;
@@ -57,6 +57,13 @@
 	}
 	
 	/**
+	 * @see IEvaluationListener#evaluationTimedOut(IJavaThread)
+	 */
+	public boolean evaluationTimedOut(IJavaThread thread) {
+		return true; // Keep waiting
+	}
+	
+	/**
 	 * Make the expression view visible or open one
 	 * if required.
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetEditor.java
index fddc85b..a17823d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetEditor.java
@@ -407,7 +407,10 @@
 			evaluationEnds();
 		}
 	}
-
+	
+	/**
+	 * @see IEvaluationListener#evaluationComplete(IEvaluationResult)
+	 */
 	public void evaluationComplete(final IEvaluationResult result) {
 		Runnable r = new Runnable() {
 			public void run() {
@@ -466,6 +469,13 @@
 	}
 	
 	/**
+	 * @see IEvaluationListener#evaluationTimedOut(IJavaThread)
+	 */
+	public boolean evaluationTimedOut(IJavaThread thread) {
+		return true; // Keep waiting
+	}
+	
+	/**
 	 * Make the expression view visible or open one
 	 * if required.
 	 */
