Updated remove command to work
diff --git a/action/remove.go b/action/remove.go
index 93f7a73..bce45bf 100644
--- a/action/remove.go
+++ b/action/remove.go
@@ -16,11 +16,14 @@
 	if err != nil {
 		msg.Die("Could not find Glide file: %s", err)
 	}
+
+	msg.Info("Preparing to remove %d packages.", len(packages))
 	conf.Imports = rmDeps(packages, conf.Imports)
 	conf.DevImports = rmDeps(packages, conf.DevImports)
 
 	// Copy used to generate locks.
 	confcopy := conf.Clone()
+	inst.Config = confcopy
 
 	confcopy.Imports = inst.List(confcopy)
 
diff --git a/repo/installer.go b/repo/installer.go
index 612ad06..e443d44 100644
--- a/repo/installer.go
+++ b/repo/installer.go
@@ -168,10 +168,10 @@
 
 	// Update imports
 	res, err := dependency.NewResolver(base)
-	res.Config = conf
 	if err != nil {
 		msg.Die("Failed to create a resolver: %s", err)
 	}
+	res.Config = conf
 	res.Handler = m
 	res.VersionHandler = v
 	msg.Info("Resolving imports")
@@ -222,12 +222,24 @@
 
 func (i *Installer) List(conf *cfg.Config) []*cfg.Dependency {
 	base := "."
+	vpath := i.VendorPath()
+
+	v := &VersionHandler{
+		Destination: vpath,
+		Deps:        make(map[string]*cfg.Dependency),
+		Use:         make(map[string]*cfg.Dependency),
+		Imported:    make(map[string]bool),
+		Conflicts:   make(map[string]bool),
+		Config:      conf,
+	}
 
 	// Update imports
 	res, err := dependency.NewResolver(base)
 	if err != nil {
 		msg.Die("Failed to create a resolver: %s", err)
 	}
+	res.Config = conf
+	res.VersionHandler = v
 
 	msg.Info("Resolving imports")
 	packages, err := allPackages(conf.Imports, res)
@@ -236,6 +248,37 @@
 	}
 	deps := depsFromPackages(packages)
 
+	// TODO(mattfarina): We need to not go back and forth between between
+	// paths and cfg.Dependency instances.
+	// If we have conf.Imports we copy them to the final list to pull up elements
+	// like the VCS information.
+	for k, d := range deps {
+		for _, dep := range conf.Imports {
+			if dep.Name == d.Name {
+				deps[k] = dep
+			}
+		}
+	}
+
+	// Copy over the dependency information from the version system which contains
+	// pinned information, VCS info, etc.
+	for _, d := range deps {
+		d2, found := v.Deps[d.Name]
+		if found {
+			d.Pin = d2.Pin
+			if d.Repository == "" {
+				d.Repository = d2.Repository
+			}
+			if d.VcsType == "" {
+				d.VcsType = d2.VcsType
+			}
+			if d.Reference == "" {
+				d.Reference = d2.Reference
+			}
+		}
+	}
+	conf.Imports = deps
+
 	msg.Warn("devImports not resolved.")
 
 	return deps