Fixed #578: Not resolving parent project packages in some cases
diff --git a/repo/installer.go b/repo/installer.go
index 324e4eb..52bc297 100644
--- a/repo/installer.go
+++ b/repo/installer.go
@@ -583,6 +583,12 @@
 func (m *MissingPackageHandler) PkgPath(pkg string) string {
 	root, sub := util.NormalizeName(pkg)
 
+	// For the parent applications source skip the cache.
+	if root == m.Config.Name {
+		pth := gpath.Basepath()
+		return filepath.Join(pth, filepath.FromSlash(sub))
+	}
+
 	d := m.Config.Imports.Get(root)
 	if d == nil {
 		d = m.Config.DevImports.Get(root)
@@ -601,7 +607,7 @@
 		msg.Die("Error generating cache key for %s", d.Name)
 	}
 
-	return filepath.Join(cache.Location(), "src", key, sub)
+	return filepath.Join(cache.Location(), "src", key, filepath.FromSlash(sub))
 }
 
 func (m *MissingPackageHandler) fetchToCache(pkg string, addTest bool) error {
@@ -767,6 +773,12 @@
 func (d *VersionHandler) pkgPath(pkg string) string {
 	root, sub := util.NormalizeName(pkg)
 
+	// For the parent applications source skip the cache.
+	if root == d.Config.Name {
+		pth := gpath.Basepath()
+		return filepath.Join(pth, filepath.FromSlash(sub))
+	}
+
 	dep := d.Config.Imports.Get(root)
 	if dep == nil {
 		dep = d.Config.DevImports.Get(root)
@@ -785,7 +797,7 @@
 		msg.Die("Error generating cache key for %s", dep.Name)
 	}
 
-	return filepath.Join(cache.Location(), "src", key, sub)
+	return filepath.Join(cache.Location(), "src", key, filepath.FromSlash(sub))
 }
 
 func determineDependency(v, dep *cfg.Dependency, dest, req string) *cfg.Dependency {