* bug fixing
* local user libraries are working
diff --git a/core/plugins/org.eclipse.dltk.console.ui/src/org/eclipse/dltk/console/ui/ScriptConsole.java b/core/plugins/org.eclipse.dltk.console.ui/src/org/eclipse/dltk/console/ui/ScriptConsole.java
index ccb30dc..1298555 100644
--- a/core/plugins/org.eclipse.dltk.console.ui/src/org/eclipse/dltk/console/ui/ScriptConsole.java
+++ b/core/plugins/org.eclipse.dltk.console.ui/src/org/eclipse/dltk/console/ui/ScriptConsole.java
@@ -60,15 +60,19 @@
 			}
 			for (int i = 0; i < launches.length; i++) {
 				if (launches[i].equals(launch)) {
-					ScriptConsoleViewer consoleViewer = (ScriptConsoleViewer) page
+					final ScriptConsoleViewer consoleViewer = (ScriptConsoleViewer) page
 							.getViewer();
-					if (consoleViewer != null) {
-						consoleViewer.disableProcessing();
-						appendInvitation(consoleViewer);
-						updateText(consoleViewer, "Process terminated...",
-								false);
-						consoleViewer.setEditable(false);
-					}
+					page.getControl().getDisplay().asyncExec(new Runnable() {
+						public void run() {
+							if (consoleViewer != null) {
+								consoleViewer.disableProcessing();
+								appendInvitation(consoleViewer);
+								updateText(consoleViewer,
+										"Process terminated...", false);
+								consoleViewer.setEditable(false);
+							}
+						}
+					});
 				}
 			}
 		}
@@ -159,6 +163,7 @@
 			}
 		});
 	}
+
 	protected void enableEdit(final ScriptConsoleViewer viewer) {
 		Control control = viewer.getControl();
 		if (control == null) {
@@ -382,7 +387,7 @@
 	}
 
 	public String handleCommand(String userInput) throws IOException {
-		if( this.interpreter == null && this.interpreter.isValid() ) {
+		if (this.interpreter == null && this.interpreter.isValid()) {
 			return "";
 		}
 		Object[] listeners = consoleListeners.getListeners();