Issue #146: re-enabling old (and now fixed) unmanaged import scanning
diff --git a/cmd/flatten.go b/cmd/flatten.go
index e3de2a4..eac3773 100644
--- a/cmd/flatten.go
+++ b/cmd/flatten.go
@@ -8,6 +8,7 @@
 
 	"github.com/Masterminds/cookoo"
 	"github.com/Masterminds/glide/cfg"
+	"github.com/Masterminds/glide/util"
 	"github.com/Masterminds/semver"
 )
 
@@ -261,58 +262,52 @@
 // for dependencies. So generally it should be the last merge strategy
 // that you try.
 func mergeGuess(dir, pkg string, deps map[string]*cfg.Dependency, vend string) ([]string, bool) {
-	/*
-			Info("Scanning %s for dependencies.", pkg)
-			buildContext, err := GetBuildContext()
-			if err != nil {
-				Warn("Could not scan package %q: %s", pkg, err)
-				return []string{}, false
-			}
+	Info("Scanning %s for dependencies.", pkg)
+	buildContext, err := GetBuildContext()
+	if err != nil {
+		Warn("Could not scan package %q: %s", pkg, err)
+		return []string{}, false
+	}
 
-			res := []string{}
+	res := []string{}
 
-			if _, err := os.Stat(dir); err != nil {
-				Warn("Directory is missing: %s", dir)
-				return res, true
-			}
-
-			d := walkDeps(buildContext, dir, pkg)
-			for _, name := range d {
-				name, _ := NormalizeName(name)
-				repo := getRepoRootFromPackage(name)
-				if _, ok := deps[name]; ok {
-					Debug("====> Seen %s already. Skipping", name)
-					continue
-				}
-
-				found := findPkg(buildContext, name, dir)
-				switch found.PType {
-				case ptypeUnknown:
-					Debug("✨☆ Undownloaded dependency: %s", name)
-					nd := &Dependency{
-						Name:       name,
-						Repository: "https://" + repo,
-					}
-					deps[name] = nd
-					res = append(res, name)
-				case ptypeGoroot, ptypeCgo:
-					break
-				default:
-					// We're looking for dependencies that might exist in $GOPATH
-					// but not be on vendor. We add any that are on $GOPATH.
-					if _, ok := deps[name]; !ok {
-						Debug("✨☆ GOPATH dependency: %s", name)
-						nd := &Dependency{Name: name}
-						deps[name] = nd
-						res = append(res, name)
-					}
-				}
-			}
-
+	if _, err := os.Stat(dir); err != nil {
+		Warn("Directory is missing: %s", dir)
 		return res, true
-	*/
-	Info("Package %s manages its own dependencies", pkg)
-	return []string{}, true
+	}
+	d := walkDeps(buildContext, dir, pkg)
+	for _, name := range d {
+		name, _ := NormalizeName(name)
+		if _, ok := deps[name]; ok {
+			Debug("====> Seen %s already. Skipping", name)
+			continue
+		}
+		found := findPkg(buildContext, name, dir)
+		switch found.PType {
+		case ptypeUnknown:
+			Debug("✨☆ Undownloaded dependency: %s", name)
+			repo := util.GetRootFromPackage(name)
+			nd := &cfg.Dependency{
+				Name:       name,
+				Repository: "https://" + repo,
+			}
+			deps[name] = nd
+			res = append(res, name)
+		case ptypeGoroot, ptypeCgo:
+			break
+		default:
+			// We're looking for dependencies that might exist in $GOPATH
+			// but not be on vendor. We add any that are on $GOPATH.
+			if _, ok := deps[name]; !ok {
+				Debug("✨☆ GOPATH dependency: %s", name)
+				nd := &cfg.Dependency{Name: name}
+				deps[name] = nd
+				res = append(res, name)
+			}
+		}
+	}
+
+	return res, true
 }
 
 // mergeDeps merges any dependency array into deps.
diff --git a/cmd/get_imports.go b/cmd/get_imports.go
index 8782f8e..feae223 100644
--- a/cmd/get_imports.go
+++ b/cmd/get_imports.go
@@ -520,6 +520,9 @@
 	if dep.Reference == "" {
 		// Before exiting update the pinned version
 		repo, err := dep.GetRepo(cwd)
+		if err != nil {
+			return err
+		}
 		dep.Pin, err = repo.Version()
 		if err != nil {
 			return err
diff --git a/cmd/tree.go b/cmd/tree.go
index a3bbcdd..61ba869 100644
--- a/cmd/tree.go
+++ b/cmd/tree.go
@@ -176,13 +176,15 @@
 	if err != nil {
 		abs = cwd
 	}
-	for wd := abs; wd != "/"; wd = filepath.Dir(wd) {
-		p = filepath.Join(wd, "vendor", name)
-		if fi, err = os.Stat(p); err == nil && (fi.IsDir() || isLink(fi)) {
-			info.Path = p
-			info.PType = ptypeVendor
-			info.Vendored = true
-			return info
+	if abs != "." {
+		for wd := abs; wd != "/"; wd = filepath.Dir(wd) {
+			p = filepath.Join(wd, "vendor", name)
+			if fi, err = os.Stat(p); err == nil && (fi.IsDir() || isLink(fi)) {
+				info.Path = p
+				info.PType = ptypeVendor
+				info.Vendored = true
+				return info
+			}
 		}
 	}
 	// Check $GOPATH