diff --git a/gbvendor/imports.go b/gbvendor/imports.go
index 93223cc..d3c34b2 100644
--- a/gbvendor/imports.go
+++ b/gbvendor/imports.go
@@ -5,12 +5,11 @@
 	"go/parser"
 	"go/token"
 	"io"
+	"log"
 	"net/http"
 	"os"
 	"path/filepath"
 	"strings"
-
-	"github.com/constabulary/gb"
 )
 
 // ParseImports parses Go packages from a specific root returning a set of import paths.
@@ -69,7 +68,7 @@
 		}
 	case "http":
 		if !insecure {
-			gb.Infof("skipping insecure protocol: %v", url)
+			log.Printf("skipping insecure protocol: %v", url)
 		} else {
 			resp, err := http.Get(url)
 			if err == nil {
diff --git a/gbvendor/repo.go b/gbvendor/repo.go
index 521054b..95393d6 100644
--- a/gbvendor/repo.go
+++ b/gbvendor/repo.go
@@ -5,14 +5,13 @@
 	"fmt"
 	"io"
 	"io/ioutil"
+	"log"
 	"net/url"
 	"os"
 	"os/exec"
 	"path/filepath"
 	"regexp"
 	"strings"
-
-	"github.com/constabulary/gb"
 )
 
 // RemoteRepo describes a remote dvcs repository.
@@ -248,7 +247,7 @@
 			}
 		case "http", "git":
 			if !insecure {
-				gb.Infof("skipping insecure protocol: %s", url.String())
+				log.Printf("skipping insecure protocol: %s", url.String())
 				continue
 			}
 			if err := vcs(&url); err == nil {
@@ -279,7 +278,7 @@
 // error will be returned.
 func (g *gitrepo) Checkout(branch, tag, revision string) (WorkingCopy, error) {
 	if branch == "HEAD" {
-		return nil, fmt.Errorf("cannot update %q as it has been previously fetched with -tag or -revision. Please use gb vendor delete then fetch again.", g.url)
+		return nil, fmt.Errorf("cannot update %q as it has been previously fetched with -tag or -revision. Please use gvt delete then fetch again.", g.url)
 	}
 	if !atMostOne(branch, tag, revision) {
 		return nil, fmt.Errorf("only one of branch, tag or revision may be supplied")
@@ -490,7 +489,7 @@
 }
 
 func mktmp() (string, error) {
-	return ioutil.TempDir("", "gb-vendor-")
+	return ioutil.TempDir("", "gvt-")
 }
 
 func run(c string, args ...string) ([]byte, error) {
diff --git a/help.go b/help.go
index f99dbca..218a074 100644
--- a/help.go
+++ b/help.go
@@ -49,13 +49,12 @@
 	for _, cmd := range commands {
 		if cmd.Name == arg {
 			tmpl(os.Stdout, helpTemplate, cmd)
-			// not exit 2: succeeded at 'gb help cmd'.
 			return
 		}
 	}
 
-	fmt.Fprintf(os.Stderr, "Unknown help topic %#q. Run 'gb help'.\n", arg)
-	os.Exit(2) // failed at 'gb help cmd'
+	fmt.Fprintf(os.Stderr, "Unknown help topic %#q. Run 'gvt help'.\n", arg)
+	os.Exit(2)
 }
 
 var usageTemplate = `gvt, a simple go vendoring tool based on gb-vendor.
