diff --git a/main.go b/main.go
index fb0f306..d7d3fba 100644
--- a/main.go
+++ b/main.go
@@ -9,6 +9,7 @@ import (
 	"io"
 	"net"
 	"os"
+	"unicode"
 
 	"github.com/jroimartin/gocui"
 	"gitlab.com/tblyler/ep2pchat/client"
@@ -128,7 +129,27 @@ func main() {
 
 			return nil
 		})
-		gui.SetKeybinding("", gocui.KeyCtrlL, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error {
+		gui.SetKeybinding("input", gocui.KeyCtrlW, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error {
+			buffer := v.Buffer()
+			foundFirstSpace := false
+			foundFirstChar := false
+			for i := len(buffer) - 1; i >= 0; i-- {
+				if unicode.IsSpace(rune(buffer[i])) {
+					if foundFirstSpace && foundFirstChar {
+						break
+					}
+
+					foundFirstSpace = true
+				} else {
+					foundFirstChar = true
+				}
+
+				v.EditDelete(true)
+			}
+
+			return nil
+		})
+		gui.SetKeybinding("input", gocui.KeyCtrlL, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error {
 			chat, err := g.View("chat")
 			if err != nil {
 				return nil