Code cleanup.
diff --git a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/util/Displays.java b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/util/Displays.java
deleted file mode 100644
index d35329b..0000000
--- a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/util/Displays.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2012 Google Inc.
- *
- * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse
- * Public License v1.0 which accompanies this distribution, and is available at
- *
- * http://www.eclipse.org/legal/epl-v10.html
- */
-package com.google.eclipse.terminal.local.ui.util;
-
-import static java.lang.Thread.currentThread;
-import static org.eclipse.swt.widgets.Display.findDisplay;
-import static org.eclipse.ui.PlatformUI.*;
-
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Utility methods related to <code>{@link Display}</code>s.
- *
- * @author alruiz@google.com (Alex Ruiz)
- */
-public final class Displays {
-  /**
-   * Causes the {@code run()} method of the given {@code Runnable} to be invoked by the user-interface thread.
-   * @param runnable the given {@code Runnable}.
-   */
-  public static void runInDisplayThread(Runnable runnable) {
-    if (findDisplay(currentThread()) != null) {
-      runnable.run();
-      return;
-    }
-    if (isWorkbenchRunning()) {
-      getWorkbench().getDisplay().syncExec(runnable);
-    }
-  }
-
-  private Displays() {}
-}
diff --git a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java
index 8c67788..62ecdb6 100644
--- a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java
+++ b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java
@@ -12,16 +12,16 @@
 import static com.google.eclipse.terminal.local.ImageKeys.*;
 import static com.google.eclipse.terminal.local.ui.preferences.ColorsAndFontsPreferences.*;
 import static com.google.eclipse.terminal.local.ui.preferences.GeneralPreferences.*;
-import static com.google.eclipse.terminal.local.ui.util.Displays.runInDisplayThread;
 import static com.google.eclipse.terminal.local.ui.view.Messages.*;
 import static com.google.eclipse.terminal.local.util.Platform.userHomeDirectory;
 import static org.eclipse.core.runtime.Path.fromOSString;
+import static org.eclipse.core.runtime.Status.OK_STATUS;
 import static org.eclipse.jface.resource.JFaceResources.TEXT_FONT;
 import static org.eclipse.ui.IWorkbenchPage.VIEW_ACTIVATE;
 
 import java.util.UUID;
 
-import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.*;
 import org.eclipse.jface.action.*;
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.util.*;
@@ -32,6 +32,7 @@
 import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
 import org.eclipse.ui.*;
 import org.eclipse.ui.part.ViewPart;
+import org.eclipse.ui.progress.UIJob;
 
 import com.google.eclipse.terminal.local.core.connector.LifeCycleListener;
 import com.google.eclipse.terminal.local.ui.preferences.AbstractPreferencesChangeListener;
@@ -107,21 +108,13 @@
     terminalWidget.setLifeCycleListener(this);
     terminalWidget.setCommandListener(new CommandListener() {
       @Override public void commandIssued(final String command) {
-        runInDisplayThread(new Runnable() {
-          @Override public void run() {
-            String title = String.format(VIEW_TITLE_FORMAT, workingDirectory.lastSegment(), command);
-            setPartName(title);
-          }
-        });
+        String title = String.format(VIEW_TITLE_FORMAT, workingDirectory.lastSegment(), command);
+        updatePartName(title);
       }
     });
     terminalWidget.setTerminalListener(new ITerminalListener() {
       @Override public void setTerminalTitle(final String title) {
-        runInDisplayThread(new Runnable() {
-          @Override public void run() {
-            setPartName(title);
-          }
-        });
+        updatePartName(title);
       }
 
       @Override public void setState(TerminalState state) {
@@ -237,6 +230,16 @@
     terminalWidget.connect();
   }
 
+  private void updatePartName(final String value) {
+    UIJob job = new UIJob("Update terminal view title") {
+      @Override public IStatus runInUIThread(IProgressMonitor monitor) {
+        setPartName(value);
+        return OK_STATUS;
+      }
+    };
+    job.schedule();
+  }
+
   @Override public void setFocus() {
     terminalWidget.setFocus();
   }