Code cleanup.
diff --git a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/CommandLauncher.java b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/CommandLauncher.java
deleted file mode 100644
index 633567f..0000000
--- a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/CommandLauncher.java
+++ /dev/null
@@ -1,63 +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.view;
-
-import java.util.logging.*;
-
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.keys.*;
-import org.eclipse.ui.internal.keys.WorkbenchKeyboard.KeyDownFilter;
-import org.eclipse.ui.keys.IBindingService;
-
-/**
- * @author alruiz@google.com (Alex Ruiz)
- */
-@SuppressWarnings("restriction")
-class CommandLauncher extends KeyAdapter {
-  private static Logger logger = Logger.getLogger(CommandLauncher.class.getCanonicalName());
-
-  @Override public void keyPressed(KeyEvent e) {
-    if (!e.doit) {
-      return;
-    }
-    IBindingService bindingService = (IBindingService) PlatformUI.getWorkbench().getAdapter(IBindingService.class);
-    // Necessary to handle copy/paste/"select all" keyboard accelerators.
-    if (bindingService instanceof BindingService) {
-      KeyDownFilter filter = ((BindingService) bindingService).getKeyboard().getKeyDownFilter();
-      Control focusControl = e.display.getFocusControl();
-      boolean enabled = filter.isEnabled();
-      try {
-        filter.setEnabled(true);
-        filter.handleEvent(copyOf(e));
-      } catch (Throwable t) {
-        logger.log(Level.SEVERE, "Unable to handle event: " + e, t);
-      } finally {
-        if (focusControl == e.display.getFocusControl() && !enabled) {
-          filter.setEnabled(enabled);
-        }
-      }
-    }
-  }
-
-  private Event copyOf(KeyEvent e) {
-    Event event = new Event();
-    event.character = e.character;
-    event.data = e.data;
-    event.display = e.display;
-    event.doit = e.doit;
-    event.keyCode = e.keyCode;
-    event.keyLocation = e.keyLocation;
-    event.stateMask = e.stateMask;
-    event.time = e.time;
-    event.widget = e.widget;
-    return event;
-  }
-}
diff --git a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/CommandListener.java b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/CommandListener.java
deleted file mode 100644
index 6f81d0c..0000000
--- a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/CommandListener.java
+++ /dev/null
@@ -1,16 +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.view;
-
-/**
- * @author alruiz@google.com (Alex Ruiz)
- */
-interface CommandListener {
-  void commandIssued(String command);
-}
diff --git a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalWidget.java b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalWidget.java
index 2777b88..9b3e61a 100644
--- a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalWidget.java
+++ b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalWidget.java
@@ -62,13 +62,11 @@
         editActions.onMenuHidden();
       }
     });
-    Control terminalTextControl = terminalTextControl();
-    terminalTextControl.addFocusListener(new FocusAdapter() {
+    terminalTextControl().addFocusListener(new FocusAdapter() {
       @Override public void focusGained(FocusEvent e) {
         editActions.update();
       }
     });
-    terminalTextControl.addKeyListener(new CommandLauncher());
   }
 
   private Menu createContextMenu(MenuManager menuManager) {
diff --git a/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java b/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java
index e9617be..9d7c83c 100644
--- a/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java
+++ b/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java
@@ -60,6 +60,8 @@
 import org.eclipse.tm.terminal.model.*;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.contexts.*;
+import org.eclipse.ui.internal.keys.*;
+import org.eclipse.ui.internal.keys.WorkbenchKeyboard.KeyDownFilter;
 import org.eclipse.ui.keys.IBindingService;
 
 /**
@@ -783,6 +785,7 @@
 			int accelerator = convertEventToUnmodifiedAccelerator(event);
 			for (int editActionAccelerator : EDIT_ACTION_ACCELERATORS) {
 			  if (editActionAccelerator == accelerator) {
+          forceCommandExecution(event);
           return;
         }
 			}
@@ -1006,6 +1009,40 @@
 			writeToTerminal(charBuffer.toString());
 		}
 
+    private void forceCommandExecution(KeyEvent e) {
+      if (!e.doit) {
+        return;
+      }
+      IBindingService bindingService = (IBindingService) PlatformUI.getWorkbench().getAdapter(IBindingService.class);
+      // Necessary to handle copy/paste/"select all" keyboard accelerators.
+      if (bindingService instanceof BindingService) {
+        KeyDownFilter filter = ((BindingService) bindingService).getKeyboard().getKeyDownFilter();
+        Control focusControl = e.display.getFocusControl();
+        boolean enabled = filter.isEnabled();
+        try {
+          filter.setEnabled(true);
+          filter.handleEvent(copyOf(e));
+        } finally {
+          if (focusControl == e.display.getFocusControl() && !enabled) {
+            filter.setEnabled(enabled);
+          }
+        }
+      }
+    }
+
+    private Event copyOf(KeyEvent e) {
+      Event event = new Event();
+      event.character = e.character;
+      event.data = e.data;
+      event.display = e.display;
+      event.doit = e.doit;
+      event.keyCode = e.keyCode;
+      event.keyLocation = e.keyLocation;
+      event.stateMask = e.stateMask;
+      event.time = e.time;
+      event.widget = e.widget;
+      return event;
+    }
 	}
 
 	@Override public void setTerminalTitle(String title) {