diff --git a/cmd/util.go b/cmd/util.go
index 22af441..83e46b1 100644
--- a/cmd/util.go
+++ b/cmd/util.go
@@ -3,6 +3,7 @@
 import (
 	"github.com/Masterminds/cookoo"
 	"fmt"
+	"os"
 )
 
 var Quiet bool = false
@@ -38,13 +39,22 @@
 }
 
 func Warn(msg string, args ...interface{}) {
-	fmt.Print(Color(Red, "[WARN] "))
-	Msg(msg, args...)
+	fmt.Fprint(os.Stderr, Color(Red, "[WARN] "))
+	ErrMsg(msg, args...)
 }
 
 func Error(msg string, args ...interface{}) {
-	fmt.Print(Color(BoldRed, "[ERROR] "))
-	Msg(msg, args...)
+	fmt.Fprint(os.Stderr, Color(BoldRed, "[ERROR] "))
+	ErrMsg(msg, args...)
+}
+
+// ErrMsg sends a message to Stderr
+func ErrMsg(msg string, args...interface{}) {
+	if len(args) == 0 {
+		fmt.Fprint(os.Stderr, msg)
+		return
+	}
+	fmt.Fprintf(os.Stderr, msg, args...)
 }
 
 func Msg(msg string, args...interface{}) {
diff --git a/glide.go b/glide.go
index a1ed85e..7e0f849 100644
--- a/glide.go
+++ b/glide.go
@@ -47,6 +47,10 @@
 - gopath: Emits the GOPATH for the current project. Useful for things like
   manually setting GOPATH: GOPATH=$(glide gopath)
 
+Importing:
+
+- godeps: Import Godeps and Godeps-Git files and display the would-be yaml file.
+
 FILES
 =====
 
@@ -73,21 +77,6 @@
 		os.Exit(1)
 	}
 
-	/*
-	next := cxt.Get("subcommand", "help").(string)
-	if router.HasRoute(next) {
-		if err := router.HandleRequest(next, cxt, false); err != nil {
-			fmt.Printf("Oops! %s\n", err)
-			os.Exit(1)
-		}
-	} else {
-		if err := router.HandleRequest("@plugin", cxt, false); err != nil {
-			fmt.Printf("Oops! %s\n", err)
-			os.Exit(1)
-		}
-	}
-	*/
-
 }
 
 func routes(reg *cookoo.Registry, cxt cookoo.Context) {
