diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5c60803..beb23ac 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-# Release 0.5.1 (xxxx-xx-xx)
+# Release 0.5.1 (2015-08-31)
 
 - Fixed #58: Guess command not working.
 - Fixed #56: Unable to use glide get on golang.org/x/[name]/[subpackage]
diff --git a/cmd/guess_deps.go b/cmd/guess_deps.go
index 909ad9f..850ccc4 100644
--- a/cmd/guess_deps.go
+++ b/cmd/guess_deps.go
@@ -33,7 +33,7 @@
 	config.Name = guessPackageName(base)
 	config.Imports = make([]*Dependency, len(deps))
 	i := 0
-	for pa, _ := range deps {
+	for pa := range deps {
 		Info("Found reference to %s\n", pa)
 		d := &Dependency{
 			Name: pa,
@@ -102,7 +102,7 @@
 // package needs to be referenced.
 func compactDeps(soFar map[string]bool) map[string]bool {
 	basePackages := make(map[string]bool, len(soFar))
-	for k, _ := range soFar {
+	for k := range soFar {
 		base, _ := NormalizeName(k)
 		basePackages[base] = true
 	}
diff --git a/cmd/util.go b/cmd/util.go
index 3e1e278..4c83cf6 100644
--- a/cmd/util.go
+++ b/cmd/util.go
@@ -7,7 +7,6 @@
 	"os/exec"
 	"path"
 	"path/filepath"
-	"strings"
 
 	"github.com/Masterminds/cookoo"
 )
@@ -36,11 +35,10 @@
 
 // VersionGuard ensures that the Go version is correct.
 func VersionGuard(c cookoo.Context, p *cookoo.Params) (interface{}, cookoo.Interrupt) {
-	cmd := exec.Command("go", "version")
+	// 6l was removed in 1.5, when vendoring was introduced.
+	cmd := exec.Command("go", "tool", "6l")
 	var out string
-	if out, err := cmd.CombinedOutput(); err != nil {
-		return nil, err
-	} else if !strings.Contains(string(out), "go1.5") {
+	if _, err := cmd.CombinedOutput(); err == nil {
 		Warn("You must install the Go 1.5 or greater toolchain to work with Glide.\n")
 	}
 	if os.Getenv("GO15VENDOREXPERIMENT") != "1" {
