diff --git a/help.go b/help.go
index 218a074..a2669a1 100644
--- a/help.go
+++ b/help.go
@@ -109,8 +109,3 @@
 	tmpl(bw, usageTemplate, commands)
 	bw.Flush()
 }
-
-func usage() {
-	printUsage(os.Stderr)
-	os.Exit(2)
-}
diff --git a/main.go b/main.go
index 93c8ef8..3f435b8 100644
--- a/main.go
+++ b/main.go
@@ -2,15 +2,16 @@
 
 import (
 	"flag"
+	"fmt"
 	"log"
 	"os"
 	"path/filepath"
 )
 
-var fs = flag.NewFlagSet(os.Args[0], flag.ExitOnError)
+var fs = flag.NewFlagSet(os.Args[0], flag.ContinueOnError)
 
 func init() {
-	fs.Usage = usage
+	fs.Usage = func() {}
 }
 
 type Command struct {
@@ -54,17 +55,24 @@
 			}
 
 			if err := fs.Parse(args[1:]); err != nil {
-				log.Fatalf("could not parse flags: %v", err)
+				if err == flag.ErrHelp {
+					help(args[:1])
+					os.Exit(0)
+				}
+				fmt.Fprint(os.Stderr, "\n")
+				help(args[:1])
+				os.Exit(3)
 			}
-			args = fs.Args() // reset args to the leftovers from fs.Parse
 
-			if err := command.Run(args); err != nil {
+			if err := command.Run(fs.Args()); err != nil {
 				log.Fatalf("command %q failed: %v", command.Name, err)
 			}
 			return
 		}
 	}
-	log.Fatalf("unknown command %q ", args[0])
+	fmt.Fprintf(os.Stderr, "unknown command: %q\n\n", args[0])
+	printUsage(os.Stderr)
+	os.Exit(3)
 }
 
 const manifestfile = "manifest"
