diff --git a/dependency/resolver.go b/dependency/resolver.go
index 3a8e05a..3345dc1 100644
--- a/dependency/resolver.go
+++ b/dependency/resolver.go
@@ -464,7 +464,6 @@
 			continue
 		}
 		r.VersionHandler.Process(dep)
-
 		// Here, we want to import the package and see what imports it has.
 		msg.Debug("Trying to open %s", vdep)
 		var imps []string
@@ -859,8 +858,14 @@
 func sliceToQueue(deps []*cfg.Dependency, basepath string) *list.List {
 	l := list.New()
 	for _, e := range deps {
-		msg.Debug("Adding local Import %s to queue", e.Name)
-		l.PushBack(filepath.Join(basepath, filepath.FromSlash(e.Name)))
+		for _, v := range e.Subpackages {
+			ip := e.Name
+			if v != "." && v != "" {
+				ip = ip + "/" + v
+			}
+			msg.Debug("Adding local Import %s to queue", ip)
+			l.PushBack(filepath.Join(basepath, filepath.FromSlash(ip)))
+		}
 	}
 	return l
 }
diff --git a/repo/installer.go b/repo/installer.go
index 68a5d59..871cc79 100644
--- a/repo/installer.go
+++ b/repo/installer.go
@@ -202,16 +202,17 @@
 	for _, v := range imps {
 		n := res.Stripv(v)
 		rt, sub := util.NormalizeName(n)
+		if sub != "" {
+			sub = "."
+		}
 		d := conf.Imports.Get(rt)
 		if d == nil {
 			nd := &cfg.Dependency{
-				Name: rt,
-			}
-			if sub != "" {
-				nd.Subpackages = []string{sub}
+				Name:        rt,
+				Subpackages: []string{sub},
 			}
 			conf.Imports = append(conf.Imports, nd)
-		} else if sub != "" && !d.HasSubpackage(sub) {
+		} else if !d.HasSubpackage(sub) {
 			d.Subpackages = append(d.Subpackages, sub)
 		}
 	}
@@ -219,19 +220,20 @@
 		for _, v := range timps {
 			n := res.Stripv(v)
 			rt, sub := util.NormalizeName(n)
+			if sub != "" {
+				sub = "."
+			}
 			d := conf.Imports.Get(rt)
 			if d == nil {
 				d = conf.DevImports.Get(rt)
 			}
 			if d == nil {
 				nd := &cfg.Dependency{
-					Name: rt,
-				}
-				if sub != "" {
-					nd.Subpackages = []string{sub}
+					Name:        rt,
+					Subpackages: []string{sub},
 				}
 				conf.DevImports = append(conf.DevImports, nd)
-			} else if sub != "" && !d.HasSubpackage(sub) {
+			} else if !d.HasSubpackage(sub) {
 				d.Subpackages = append(d.Subpackages, sub)
 			}
 		}
