diff --git a/dependency/resolver.go b/dependency/resolver.go
index edcc13c..b79da2c 100644
--- a/dependency/resolver.go
+++ b/dependency/resolver.go
@@ -2,6 +2,7 @@
 
 import (
 	"container/list"
+	"errors"
 	"runtime"
 	"sort"
 	//"go/build"
@@ -502,8 +503,9 @@
 				continue
 			}
 		} else if err != nil {
+			errStr := err.Error()
 			msg.Debug("ImportDir error on %s: %s", r.Handler.PkgPath(dep), err)
-			if strings.HasPrefix(err.Error(), "no buildable Go source") {
+			if strings.HasPrefix(errStr, "no buildable Go source") {
 				msg.Debug("No subpackages declared. Skipping %s.", dep)
 				continue
 			} else if os.IsNotExist(err) && !foundErr && !foundQ {
@@ -530,6 +532,16 @@
 					// see if this is on GOPATH and copy it?
 					msg.Info("Not found in vendor/: %s (1)", dep)
 				}
+			} else if strings.Contains(errStr, "no such file or directory") {
+				r.hadError[dep] = true
+				msg.Err("Error scanning %s: %s", dep, err)
+				msg.Err("This error means the referenced package was not found.")
+				msg.Err("Missing file or directory errors usually occur when multiple packages")
+				msg.Err("share a common dependency and the first reference encountered by the scanner")
+				msg.Err("sets the version to one that does not contain a subpackage needed required")
+				msg.Err("by another package that uses the shared dependency. Try setting a")
+				msg.Err("version in your glide.yaml that works for all packages that share this")
+				msg.Err("dependency.")
 			} else {
 				r.hadError[dep] = true
 				msg.Err("Error scanning %s: %s", dep, err)
@@ -576,10 +588,10 @@
 					r.VersionHandler.SetVersion(imp, addTest)
 				} else if err != nil {
 					r.hadError[dep] = true
-					msg.Warn("Error looking for %s: %s", imp, err)
+					msg.Err("Error looking for %s: %s", imp, err)
 				} else {
 					r.hadError[dep] = true
-					msg.Info("Not found: %s (2)", imp)
+					msg.Err("Not found: %s (2)", imp)
 				}
 			case LocGopath:
 				msg.Debug("Found on GOPATH, not vendor: %s", imp)
@@ -596,6 +608,11 @@
 
 	}
 
+	if len(r.hadError) > 0 {
+		// Errors occured so we return.
+		return []string{}, errors.New("Error resolving imports")
+	}
+
 	// FIXME: From here to the end is a straight copy of the resolveList() func.
 	res := make([]string, 0, queue.Len())
 
diff --git a/dependency/resolver_test.go b/dependency/resolver_test.go
index 1867cee..f4b44d9 100644
--- a/dependency/resolver_test.go
+++ b/dependency/resolver_test.go
@@ -46,6 +46,8 @@
 	if err != nil {
 		t.Fatal(err)
 	}
+	h := &DefaultMissingPackageHandler{Missing: []string{}, Gopath: []string{}, Prefix: "../vendor"}
+	r.Handler = h
 
 	l, _, err := r.ResolveLocal(true)
 	if err != nil {
@@ -62,6 +64,8 @@
 	if err != nil {
 		t.Fatal(err)
 	}
+	h := &DefaultMissingPackageHandler{Missing: []string{}, Gopath: []string{}, Prefix: "../vendor"}
+	r.Handler = h
 
 	base := filepath.Join(os.Getenv("GOPATH"), "src/github.com/Masterminds/glide/vendor")
 	l, err := r.Resolve("github.com/codegangsta/cli", base)
@@ -91,6 +95,8 @@
 	if err != nil {
 		t.Fatalf("No new resolver: %s", err)
 	}
+	h := &DefaultMissingPackageHandler{Missing: []string{}, Gopath: []string{}, Prefix: "../vendor"}
+	r.Handler = h
 	l, err := r.ResolveAll(deps, false)
 	if err != nil {
 		t.Fatalf("Failed to resolve: %s", err)
