diff --git a/glide.lock b/glide.lock
index eeae594..7557f3e 100644
--- a/glide.lock
+++ b/glide.lock
@@ -1,12 +1,12 @@
-hash: 3a5b11283c409c77e79505c08a39550a966d62fb0896f4355c10d699482840a3
-updated: 2016-04-18T09:49:03.335458835-04:00
+hash: 78e2fef6acf410a5c01231739017e3b0fe7762e815bf1a9b1e577ed5af1d5693
+updated: 2016-04-27T11:53:07.688047146-04:00
 imports:
 - name: github.com/codegangsta/cli
   version: 71f57d300dd6a780ac1856c005c4b518cfd498ec
 - name: github.com/Masterminds/semver
   version: 808ed7761c233af2de3f9729a041d68c62527f3a
 - name: github.com/Masterminds/vcs
-  version: fa85cceafacd29c84a8aa6e68967bb9f1754e5e3
+  version: f6cc1e9e7389eea70d925c03eea2d6f8670f5109
 - name: gopkg.in/yaml.v2
   version: a83829b6f1293c91addabc89d0571c246397bbf4
 devImports: []
diff --git a/glide.yaml b/glide.yaml
index e9e3a02..1018832 100644
--- a/glide.yaml
+++ b/glide.yaml
@@ -11,7 +11,8 @@
 import:
 - package: gopkg.in/yaml.v2
 - package: github.com/Masterminds/vcs
-  version: ^1.6.0
+  version: ^1.6.1
 - package: github.com/codegangsta/cli
+  version: ^1.14.0
 - package: github.com/Masterminds/semver
   version: ^1.0.0
diff --git a/vendor/github.com/Masterminds/vcs/CHANGELOG.md b/vendor/github.com/Masterminds/vcs/CHANGELOG.md
index 7a04e56..a33839a 100644
--- a/vendor/github.com/Masterminds/vcs/CHANGELOG.md
+++ b/vendor/github.com/Masterminds/vcs/CHANGELOG.md
@@ -1,3 +1,9 @@
+# 1.6.1 (2016-04-27)
+
+- Fixed #30: tags from commit should not have ^{} appended (seen in git)
+- Fixed #29: isDetachedHead fails with non-english locales (git)
+- Fixed #33: Access denied and not found http errors causing xml parsing errors
+
 # 1.6.0 (2016-04-18)
 
 - Issue #26: Added Init method to initialize a repo at the local location
diff --git a/vendor/github.com/Masterminds/vcs/git.go b/vendor/github.com/Masterminds/vcs/git.go
index 5d4b956..26d50ee 100644
--- a/vendor/github.com/Masterminds/vcs/git.go
+++ b/vendor/github.com/Masterminds/vcs/git.go
@@ -1,7 +1,9 @@
 package vcs
 
 import (
+	"bytes"
 	"encoding/xml"
+	"io/ioutil"
 	"os"
 	"os/exec"
 	"path/filepath"
@@ -289,7 +291,8 @@
 	}
 	tags := s.referenceList(strings.Join(list, "\n"), `(?m-s)(?:tags)/(\S+)$`)
 	for _, t := range tags {
-		re = append(re, t)
+		// Dereferenced tags have ^{} appended to them.
+		re = append(re, strings.TrimSuffix(t, "^{}"))
 	}
 
 	return re, nil
@@ -313,16 +316,18 @@
 
 // isDetachedHead will detect if git repo is in "detached head" state.
 func isDetachedHead(dir string) (bool, error) {
-	c := exec.Command("git", "status", "-uno")
-	c.Dir = dir
-	c.Env = envForDir(c.Dir)
-	out, err := c.CombinedOutput()
+	p := filepath.Join(dir, ".git", "HEAD")
+	contents, err := ioutil.ReadFile(p)
 	if err != nil {
 		return false, err
 	}
-	detached := strings.Contains(string(out), "HEAD detached at")
 
-	return detached, nil
+	contents = bytes.TrimSpace(contents)
+	if bytes.HasPrefix(contents, []byte("ref: ")) {
+		return false, nil
+	}
+
+	return true, nil
 }
 
 // isUnableToCreateDir checks for an error in Init() to see if an error
diff --git a/vendor/github.com/Masterminds/vcs/vcs_remote_lookup.go b/vendor/github.com/Masterminds/vcs/vcs_remote_lookup.go
index 915931d..85fac7f 100644
--- a/vendor/github.com/Masterminds/vcs/vcs_remote_lookup.go
+++ b/vendor/github.com/Masterminds/vcs/vcs_remote_lookup.go
@@ -90,10 +90,6 @@
 		return t, vcsURL, nil
 	}
 
-	// Need to test for vanity or paths like golang.org/x/
-
-	// TODO: Test for 3xx redirect codes and handle appropriately.
-
 	// Pages like https://golang.org/x/net provide an html document with
 	// meta tags containing a location to work with. The go tool uses
 	// a meta tag with the name go-import which is what we use here.
@@ -117,10 +113,14 @@
 		return NoVCS, "", ErrCannotDetectVCS
 	}
 	defer resp.Body.Close()
+	if resp.StatusCode < 200 || resp.StatusCode >= 300 {
+		return NoVCS, "", ErrCannotDetectVCS
+	}
 
 	t, nu, err := parseImportFromBody(u, resp.Body)
 	if err != nil {
-		return NoVCS, "", err
+		// TODO(mattfarina): Log the parsing error
+		return NoVCS, "", ErrCannotDetectVCS
 	} else if t == "" || nu == "" {
 		return NoVCS, "", ErrCannotDetectVCS
 	}
@@ -299,6 +299,7 @@
 	}
 	defer resp.Body.Close()
 	if resp.StatusCode != 200 {
+		// TODO(mattfarina): log the failed status
 		return nil, fmt.Errorf("%s: %s", url, resp.Status)
 	}
 	b, err := ioutil.ReadAll(resp.Body)
diff --git a/vendor/github.com/Masterminds/vcs/vcs_remote_lookup_test.go b/vendor/github.com/Masterminds/vcs/vcs_remote_lookup_test.go
index 82decfc..fd7663e 100644
--- a/vendor/github.com/Masterminds/vcs/vcs_remote_lookup_test.go
+++ b/vendor/github.com/Masterminds/vcs/vcs_remote_lookup_test.go
@@ -13,6 +13,8 @@
 		"https://github.com/masterminds":                                   {work: false, t: Git},
 		"https://github.com/Masterminds/VCSTestRepo":                       {work: true, t: Git},
 		"https://bitbucket.org/mattfarina/testhgrepo":                      {work: true, t: Hg},
+		"https://bitbucket.org/mattfarina/repo-does-not-exist":             {work: false, t: Hg},
+		"https://bitbucket.org/mattfarina/private-repo-for-vcs-testing":    {work: false, t: Hg},
 		"https://launchpad.net/govcstestbzrrepo/trunk":                     {work: true, t: Bzr},
 		"https://launchpad.net/~mattfarina/+junk/mygovcstestbzrrepo":       {work: true, t: Bzr},
 		"https://launchpad.net/~mattfarina/+junk/mygovcstestbzrrepo/trunk": {work: true, t: Bzr},
@@ -56,6 +58,10 @@
 			t.Errorf("Error detecting VCS from URL(%s): %s", u, err)
 		}
 
+		if err != nil && err != ErrCannotDetectVCS && c.work == false {
+			t.Errorf("Unexpected error returned (%s): %s", u, err)
+		}
+
 		if c.work == true && ty != c.t {
 			t.Errorf("Incorrect VCS type returned(%s)", u)
 		}
