debug event listeners so that it is only active when there is a break
diff --git a/core/plugins/org.eclipse.dltk.console.ui/src/org/eclipse/dltk/console/ui/internal/ScriptConsoleViewer.java b/core/plugins/org.eclipse.dltk.console.ui/src/org/eclipse/dltk/console/ui/internal/ScriptConsoleViewer.java
index df12b50..74d81d2 100644
--- a/core/plugins/org.eclipse.dltk.console.ui/src/org/eclipse/dltk/console/ui/internal/ScriptConsoleViewer.java
+++ b/core/plugins/org.eclipse.dltk.console.ui/src/org/eclipse/dltk/console/ui/internal/ScriptConsoleViewer.java
@@ -15,6 +15,9 @@
 import java.util.List;
 import java.util.StringTokenizer;
 
+import org.eclipse.debug.core.DebugEvent;
+import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.IDebugEventSetListener;
 import org.eclipse.dltk.console.IScriptConsoleInterpreter;
 import org.eclipse.dltk.console.IScriptExecResult;
 import org.eclipse.dltk.console.IScriptInterpreter;
@@ -44,6 +47,7 @@
 import org.eclipse.swt.events.KeyListener;
 import org.eclipse.swt.events.VerifyEvent;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.console.TextConsoleViewer;
 
 public class ScriptConsoleViewer extends TextConsoleViewer implements
@@ -453,6 +457,8 @@
 
 	private ScriptConsole console;
 
+	private IDebugEventSetListener debugEventListener = new DebugEventListener();
+
 	public int getCaretPosition() {
 		return getTextWidget().getCaretOffset();
 	}
@@ -511,10 +517,11 @@
 		this.history = console.getHistory();
 
 		console.getDocumentListener().addViewer(this);
+		DebugPlugin.getDefault().addDebugEventListener(debugEventListener);
 
 		final StyledText styledText = getTextWidget();
 
-		// styledText.setEditable(false);
+		styledText.setEditable(false);
 
 		// Correct keyboard actions
 		styledText.addFocusListener(new FocusListener() {
@@ -659,6 +666,31 @@
 
 	public void dispose() {
 		console.getDocumentListener().removeViewer(this);
+		DebugPlugin.getDefault().removeDebugEventListener(debugEventListener);
 	}
 
+	private final class DebugEventListener implements IDebugEventSetListener {
+		public void handleDebugEvents(DebugEvent[] events) {
+			for (int i = 0; i < events.length; i++) {
+				if (events[i].getKind() == DebugEvent.SUSPEND) {
+					Display.getDefault().asyncExec(new Runnable() {
+						public void run() {
+							final StyledText styledText = getTextWidget();
+							styledText.setEditable(true);
+						}
+					});
+					break;
+				} else if (events[i].getKind() == DebugEvent.RESUME) {
+					Display.getDefault().asyncExec(new Runnable() {
+						public void run() {
+							final StyledText styledText = getTextWidget();
+							styledText.setEditable(false);
+						}
+					});
+					break;
+				}
+			}
+
+		}
+	}
 }