diff --git a/CHANGELOG.md b/CHANGELOG.md
index 407578f..a76e7d3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+# Release 0.10.2 (2016-04-06)
+
+- Issue #362: Updated docs on how -update-vendored works to help avoid confusion.
+- Fixed #371: Warn when name/location mismatch.
+- Fixed #290: On windows Glide was sometimes pulls in current project (thanks tzneal).
+- Fixed #361: Handle relative imports (thanks tmm1).
+- Fixed #373: Go 1.7 context package import issues.
+
 # Release 0.10.1 (2016-03-25)
 
 - Fixed #354: Fixed a situation where a dependency could be fetched when
diff --git a/action/ensure.go b/action/ensure.go
index 8d45bdd..de729fe 100644
--- a/action/ensure.go
+++ b/action/ensure.go
@@ -5,11 +5,13 @@
 	"os"
 	"os/exec"
 	"path"
+	"path/filepath"
 	"strings"
 
 	"github.com/Masterminds/glide/cfg"
 	"github.com/Masterminds/glide/msg"
 	gpath "github.com/Masterminds/glide/path"
+	"github.com/Masterminds/glide/util"
 )
 
 // EnsureConfig loads and returns a config file.
@@ -33,6 +35,27 @@
 		msg.Die("Failed to parse %s: %s", yamlpath, err)
 	}
 
+	b := filepath.Dir(yamlpath)
+	buildContext, err := util.GetBuildContext()
+	if err != nil {
+		msg.Die("Failed to build an import context while ensuring config: %s", err)
+	}
+	cwd, err := os.Getwd()
+	if err != nil {
+		msg.Err("Unable to get the current working directory")
+	} else {
+		// Determining a package name requires a relative path
+		b, err = filepath.Rel(b, cwd)
+		if err == nil {
+			name := buildContext.PackageName(b)
+			if name != conf.Name {
+				msg.Warn("The name listed in the config file (%s) does not match the current location (%s)", conf.Name, name)
+			}
+		} else {
+			msg.Warn("Problem finding the config file path (%s) relative to the current directory (%s): %s", b, cwd, err)
+		}
+	}
+
 	return conf
 }
 
diff --git a/action/project_info.go b/action/project_info.go
new file mode 100644
index 0000000..5e0995e
--- /dev/null
+++ b/action/project_info.go
@@ -0,0 +1,39 @@
+package action
+
+import (
+	"bytes"
+
+	"github.com/Masterminds/glide/msg"
+)
+
+func Info(format string) {
+	conf := EnsureConfig()
+	var buffer bytes.Buffer
+	varInit := false
+	for _, var_format := range format {
+		if varInit {
+			switch var_format {
+			case 'n':
+				buffer.WriteString(conf.Name)
+			case 'd':
+				buffer.WriteString(conf.Description)
+			case 'h':
+				buffer.WriteString(conf.Home)
+			case 'l':
+				buffer.WriteString(conf.License)
+			default:
+				msg.Die("Invalid format %s", string(var_format))
+			}
+		} else {
+			switch var_format {
+			case '%':
+				varInit = true
+				continue
+			default:
+				buffer.WriteString(string(var_format))
+			}
+		}
+		varInit = false
+	}
+	msg.Puts(buffer.String())
+}
diff --git a/dependency/resolver.go b/dependency/resolver.go
index dc88f62..2b919b0 100644
--- a/dependency/resolver.go
+++ b/dependency/resolver.go
@@ -2,6 +2,7 @@
 
 import (
 	"container/list"
+	"runtime"
 	//"go/build"
 	"os"
 	"path/filepath"
@@ -9,6 +10,7 @@
 
 	"github.com/Masterminds/glide/cfg"
 	"github.com/Masterminds/glide/msg"
+	gpath "github.com/Masterminds/glide/path"
 	"github.com/Masterminds/glide/util"
 )
 
@@ -216,6 +218,14 @@
 	return r.resolveImports(l)
 }
 
+// dirHasPrefix tests whether the directory dir begins with prefix.
+func dirHasPrefix(dir, prefix string) bool {
+	if runtime.GOOS != "windows" {
+		return strings.HasPrefix(dir, prefix)
+	}
+	return len(dir) >= len(prefix) && strings.EqualFold(dir[:len(prefix)], prefix)
+}
+
 // ResolveLocal resolves dependencies for the current project.
 //
 // This begins with the project, builds up a list of external dependencies.
@@ -280,13 +290,17 @@
 			case LocUnknown, LocVendor:
 				l.PushBack(filepath.Join(r.VendorDir, filepath.FromSlash(imp))) // Do we need a path on this?
 			case LocGopath:
-				if !strings.HasPrefix(info.Path, r.basedir) {
+				if !dirHasPrefix(info.Path, r.basedir) {
 					// FIXME: This is a package outside of the project we're
 					// scanning. It should really be on vendor. But we don't
 					// want it to reference GOPATH. We want it to be detected
 					// and moved.
 					l.PushBack(filepath.Join(r.VendorDir, filepath.FromSlash(imp)))
 				}
+			case LocRelative:
+				if strings.HasPrefix(imp, "./"+gpath.VendorDir) {
+					msg.Warn("Go package resolving will resolve %s without the ./%s/ prefix", imp, gpath.VendorDir)
+				}
 			}
 		}
 
@@ -779,6 +793,8 @@
 	// Why does a Google product get a special case build mode with a local
 	// package?
 	LocAppengine
+	// LocRelative indicates the packge is a relative directory
+	LocRelative
 )
 
 // PkgInfo represents metadata about a package found by the resolver.
@@ -815,6 +831,12 @@
 		Name: name,
 	}
 
+	if strings.HasPrefix(name, "./") || strings.HasPrefix(name, "../") {
+		info.Loc = LocRelative
+		r.findCache[name] = info
+		return info
+	}
+
 	// Check _only_ if this dep is in the current vendor directory.
 	p = filepath.Join(r.VendorDir, filepath.FromSlash(name))
 	if pkgExists(p) {
@@ -872,6 +894,12 @@
 		// https://blog.golang.org/the-app-engine-sdk-and-workspaces-gopath
 		info.Loc = LocAppengine
 		r.findCache[name] = info
+	} else if name == "context" {
+		// context is a package being added to the Go 1.7 standard library. Some
+		// packages, such as golang.org/x/net are importing it with build flags
+		// in files for go1.7. Need to detect this and handle it.
+		info.Loc = LocGoroot
+		r.findCache[name] = info
 	}
 
 	return info
diff --git a/docs/commands.md b/docs/commands.md
index f18c03e..3b233db 100644
--- a/docs/commands.md
+++ b/docs/commands.md
@@ -51,7 +51,7 @@
 
 If you want to use `glide up` to help you managed dependencies that are checked into your version control consider the flags:
 
-* `--update-vendored` (aliased to `-u`) to update the vendored dependencies.
+* `--update-vendored` (aliased to `-u`) to update the vendored dependencies. If Glide detects a vendored dependency it will update it and leave it in a vendored state. Note, any tertiary dependencies will not be automatically vendored with this flag.
 * `--strip-vcs` (aliased to `-s`) to strip VCS metadata (e.g., `.git` directories) from the `vendor` folder.
 * `--strip-vendor` (aliased to `-v`) to strip nested `vendor/` directories.
 
diff --git a/glide.go b/glide.go
index 0b9bd4b..f0647e4 100644
--- a/glide.go
+++ b/glide.go
@@ -485,6 +485,11 @@
 	will be removed when most Godeps users have migrated to using the vendor
 	folder.
 
+	Note, Glide detects vendored dependencies. With the '--update-vendored' flag
+	Glide will update vendored dependencies leaving them in a vendored state.
+	Tertiary dependencies will not be vendored automatically unless the
+	'--strip-vcs' flag is used along with it.
+
 	By default, packages that are discovered are considered transient, and are
 	not stored in the glide.yaml file. The --file=NAME.yaml flag allows you
 	to save the discovered dependencies to a YAML file.
@@ -598,6 +603,48 @@
 			},
 		},
 		{
+			Name:  "info",
+			Usage: "Info prints information about this project",
+			Flags: []cli.Flag{
+				cli.StringFlag{
+					Name:  "format, f",
+					Usage: `Format of the information wanted (required).`,
+				},
+			},
+			Description: `A format containing the text with replacement variables
+   has to be passed in. Those variables are:
+
+       %n - name
+       %d - description
+       %h - homepage
+       %l - license
+
+   For example, given a project with the following glide.yaml:
+
+       package: foo
+       homepage: https://example.com
+       license: MIT
+       description: Some example description
+
+   Then running the following commands:
+
+       glide info -f %n
+          prints 'foo'
+
+       glide info -f "License: %l"
+          prints 'License: MIT'
+
+       glide info -f "%n - %d - %h - %l"
+          prints 'foo - Some example description - https://example.com - MIT'`,
+			Action: func(c *cli.Context) {
+				if c.IsSet("format") {
+					action.Info(c.String("format"))
+				} else {
+					cli.ShowCommandHelp(c, c.Command.Name)
+				}
+			},
+		},
+		{
 			Name:  "about",
 			Usage: "Learn about Glide",
 			Action: func(c *cli.Context) {
diff --git a/repo/installer.go b/repo/installer.go
index 13d4696..e8e4bf6 100644
--- a/repo/installer.go
+++ b/repo/installer.go
@@ -555,7 +555,7 @@
 
 	err := VcsVersion(dep, d.Destination)
 	if err != nil {
-		msg.Warn("Unable to set verion on %s to %s. Err: %s", root, dep.Reference, err)
+		msg.Warn("Unable to set version on %s to %s. Err: %s", root, dep.Reference, err)
 		e = err
 	}
 
diff --git a/tree/tree.go b/tree/tree.go
index 8f0a0b5..1d9def2 100644
--- a/tree/tree.go
+++ b/tree/tree.go
@@ -103,6 +103,11 @@
 		Name: name,
 	}
 
+	if strings.HasPrefix(name, "./") || strings.HasPrefix(name, "../") {
+		info.Loc = dependency.LocRelative
+		return info
+	}
+
 	// Recurse backward to scan other vendor/ directories
 	// If the cwd isn't an absolute path walking upwards looking for vendor/
 	// folders can get into an infinate loop.
@@ -167,6 +172,11 @@
 		// where Google products are playing with each other.
 		// https://blog.golang.org/the-app-engine-sdk-and-workspaces-gopath
 		info.Loc = dependency.LocAppengine
+	} else if name == "context" {
+		// context is a package being added to the Go 1.7 standard library. Some
+		// packages, such as golang.org/x/net are importing it with build flags
+		// in files for go1.7. Need to detect this and handle it.
+		info.Loc = dependency.LocGoroot
 	}
 
 	return info
diff --git a/util/util.go b/util/util.go
index 5cdc0f4..ab67610 100644
--- a/util/util.go
+++ b/util/util.go
@@ -254,7 +254,7 @@
 		// There may not be any top level Go source files but the project may
 		// still be within the GOPATH.
 		if strings.HasPrefix(base, b.GOPATH) {
-			p := strings.TrimPrefix(base, b.GOPATH)
+			p := strings.TrimPrefix(base, filepath.Join(b.GOPATH, "src"))
 			return strings.Trim(p, string(os.PathSeparator))
 		}
 	}
