diff --git a/Cargo.toml b/Cargo.toml
index 5a17c5d5a466c12c2541c4604e47b8e5086e3dcf..d73582a05e9b1a0323eeaafb8421f3c45ff8ec15 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -7,8 +7,9 @@ Sodium: A modern vi-like editor
 """
 
 [dependencies]
-orbclient = "0.1.12"
+orbclient = "0.3"
 
 [features]
+default = ["orbital"]
 orbital = []
 ansi = []
diff --git a/src/core/exec.rs b/src/core/exec.rs
index bd6966a914d45060d5fe444d17f707d1247e7559..1d18425e548d0084089e4e43b7afcc8c1b2ba4de 100644
--- a/src/core/exec.rs
+++ b/src/core/exec.rs
@@ -24,6 +24,11 @@ impl Editor {
                 self.prompt = String::new();
                 self.cursor_mut().mode = Mode::Command(CommandMode::Normal);
             }
+            (Primitive(Insert(_)), Escape) => {
+                let left = self.left(1);
+                self.goto(left);
+                self.cursor_mut().mode = Mode::Command(CommandMode::Normal);
+            },
             (Primitive(Insert(_)), Char(' ')) if self.key_state.shift => {
                 let left = self.left(1);
                 self.goto(left);
diff --git a/src/io/graphics.rs b/src/io/graphics.rs
index be5b068bde29050756fd2966b37948cebad977bc..7035df2693b534fc0022a6672ecabba7306d00e3 100644
--- a/src/io/graphics.rs
+++ b/src/io/graphics.rs
@@ -7,7 +7,7 @@ use state::editor::Editor;
 use state::mode::{Mode, PrimitiveMode};
 
 #[cfg(feature = "orbital")]
-use orbclient::Color;
+use orbclient::{Color, Renderer};
 
 #[cfg(feature = "orbital")]
 impl Editor {
diff --git a/src/io/key.rs b/src/io/key.rs
index d695b15710b55c2f612817c97f6db2c75be2d8c8..6216d264aa6b40f32ebb22cf8bd41d5f89f0b728 100644
--- a/src/io/key.rs
+++ b/src/io/key.rs
@@ -42,22 +42,22 @@ impl Key {
     /// Convern an Orbital key event to a `Key`.
     #[cfg(feature = "orbital")]
     pub fn from_event(k: KeyEvent) -> Key {
-        match k.character {
-            '\0' => match k.scancode {
-                s if k.pressed => match s {
-                    K_BKSP => Key::Backspace,
-                    K_LEFT => Key::Left,
-                    K_RIGHT => Key::Right,
-                    K_UP => Key::Up,
-                    K_DOWN => Key::Down,
-                    K_TAB => Key::Tab,
-                    K_ESC => Key::Escape,
-                    _ => Key::Unknown(s),
-
-                },
-                _ => Key::Null,
-            },
-            c => Key::Char(c),
+        if k.pressed {
+            match k.scancode {
+                K_BKSP => Key::Backspace,
+                K_LEFT => Key::Left,
+                K_RIGHT => Key::Right,
+                K_UP => Key::Up,
+                K_DOWN => Key::Down,
+                K_TAB => Key::Tab,
+                K_ESC => Key::Escape,
+                s => match k.character {
+                    '\0' => Key::Unknown(s),
+                    c => Key::Char(c),
+                }
+            }
+        } else {
+            Key::Null
         }
     }