Merging from master
diff --git a/README.md b/README.md
index ec6f5af..566bd30 100644
--- a/README.md
+++ b/README.md
@@ -95,8 +95,9 @@
 
 1. Clone this repository into `$GOPATH/src/github.com/Masterminds/glide` and
    change directory into it
-2. Ensure that the environment variable GO15VENDOREXPERIMENT is set, for
-   example by running `export GO15VENDOREXPERIMENT=1`
+2. If you are using Go 1.5 ensure the environment variable GO15VENDOREXPERIMENT is set, for
+   example by running `export GO15VENDOREXPERIMENT=1`. In Go 1.6 it is enabled by default and
+   in Go 1.7 it is always enabled without the ability to turn it off.
 3. Run `make build`
 
 This will leave you with `./glide`, which you can put in your `$PATH` if
diff --git a/action/create.go b/action/create.go
index d655888..fa72e6b 100644
--- a/action/create.go
+++ b/action/create.go
@@ -125,7 +125,7 @@
 		n := strings.TrimPrefix(pa, vpath)
 		root, subpkg := util.NormalizeName(n)
 
-		if !config.HasDependency(root) {
+		if !config.HasDependency(root) && root != config.Name {
 			count++
 			d := deps.Get(root)
 			if d == nil {
@@ -147,7 +147,7 @@
 			}
 
 			config.Imports = append(config.Imports, d)
-		} else {
+		} else if config.HasDependency(root) {
 			if len(subpkg) > 0 {
 				subpkg = strings.TrimPrefix(subpkg, "/")
 				d := config.Imports.Get(root)
diff --git a/dependency/resolver.go b/dependency/resolver.go
index 92e10cb..300ca4d 100644
--- a/dependency/resolver.go
+++ b/dependency/resolver.go
@@ -166,6 +166,13 @@
 	if err != nil {
 		return nil, err
 	}
+
+	basedir, err = checkForBasedirSymlink(basedir)
+
+	if err != nil {
+		return nil, err
+	}
+
 	vdir := filepath.Join(basedir, "vendor")
 
 	buildContext, err := util.GetBuildContext()
@@ -941,3 +948,20 @@
 
 	return true
 }
+
+// checkForBasedirSymlink checks to see if the given basedir is actually a
+// symlink. In the case that it is a symlink, the symlink is read and returned.
+// If the basedir is not a symlink, the provided basedir argument is simply
+// returned back to the caller.
+func checkForBasedirSymlink(basedir string) (string, error) {
+	fi, err := os.Lstat(basedir)
+	if err != nil {
+		return "", err
+	}
+
+	if fi.Mode()&os.ModeSymlink != 0 {
+		return os.Readlink(basedir)
+	}
+
+	return basedir, nil
+}
diff --git a/glide.go b/glide.go
index a85622c..2e01e1c 100644
--- a/glide.go
+++ b/glide.go
@@ -233,7 +233,7 @@
 				},
 				cli.BoolFlag{
 					Name:  "strip-vcs, s",
-					Usage: "Removes version control metada (e.g, .git directory) from the vendor folder.",
+					Usage: "Removes version control metadata (e.g, .git directory) from the vendor folder.",
 				},
 				cli.BoolFlag{
 					Name:  "strip-vendor, v",
@@ -439,7 +439,7 @@
 				},
 				cli.BoolFlag{
 					Name:  "strip-vcs, s",
-					Usage: "Removes version control metada (e.g, .git directory) from the vendor folder.",
+					Usage: "Removes version control metadata (e.g, .git directory) from the vendor folder.",
 				},
 				cli.BoolFlag{
 					Name:  "strip-vendor, v",
@@ -458,7 +458,7 @@
 				installer.UseCacheGopath = c.Bool("cache-gopath")
 				installer.UpdateVendored = c.Bool("update-vendored")
 				installer.Home = c.GlobalString("home")
-				installer.DeleteUnused = c.Bool("deleteOptIn")
+				installer.DeleteUnused = c.Bool("delete")
 
 				action.Install(installer, c.Bool("strip-vcs"), c.Bool("strip-vendor"))
 			},
@@ -546,7 +546,7 @@
 				},
 				cli.BoolFlag{
 					Name:  "strip-vcs, s",
-					Usage: "Removes version control metada (e.g, .git directory) from the vendor folder.",
+					Usage: "Removes version control metadata (e.g, .git directory) from the vendor folder.",
 				},
 				cli.BoolFlag{
 					Name:  "strip-vendor, v",
@@ -571,7 +571,7 @@
 				installer.UpdateVendored = c.Bool("update-vendored")
 				installer.ResolveAllFiles = c.Bool("all-dependencies")
 				installer.Home = c.GlobalString("home")
-				installer.DeleteUnused = c.Bool("deleteOptIn")
+				installer.DeleteUnused = c.Bool("delete")
 
 				action.Update(installer, c.Bool("no-recursive"), c.Bool("strip-vcs"), c.Bool("strip-vendor"))
 			},