diff --git a/cmd/recursive_glide.go b/cmd/recursive_glide.go
index 1ddd457..26d4f4a 100644
--- a/cmd/recursive_glide.go
+++ b/cmd/recursive_glide.go
@@ -5,6 +5,7 @@
 	"path"
 
 	"github.com/Masterminds/cookoo"
+	"github.com/kylelemons/go-gypsy/yaml"
 )
 
 // Recurse does glide installs on dependent packages.
@@ -22,11 +23,13 @@
 	// Look in each package to see whether it has a glide.yaml, and no vendor/
 	for _, imp := range conf.Imports {
 		Info("Looking in %s for a glide.yaml file.\n", imp.Name)
-		if needsGlideUp(path.Join(vend, imp.Name)) {
-			Info("Package %s needs `glide up`\n", imp.Name)
-			// How do we want to do this? Should we run the glide command,
-			// which would allow environmental control, or should we just
-			// run the update route in that directory?
+		base := path.Join(vend, imp.Name)
+		if !needsGlideUp(base) {
+			Info("Package %s manages its own dependencies.\n", imp.Name)
+		}
+		Info("Package %s needs `glide up`\n", imp.Name)
+		if err := dependencyGlideUp(base); err != nil {
+			Warn("Failed to update dependency %s: %s", imp.Name, err)
 		}
 	}
 
@@ -34,6 +37,46 @@
 	return nil, nil
 }
 
+func dependencyGlideUp(base string) error {
+	//conf := new(Config)
+	fname := path.Join(base, "glide.yaml")
+	f, err := yaml.ReadFile(fname)
+	if err != nil {
+		return err
+	}
+
+	conf, err := FromYaml(f.Root)
+	if err != nil {
+		return err
+	}
+	for _, imp := range conf.Imports {
+		Info("Importing %s to project %s\n", imp.Name, base)
+		// We don't use the global var to find vendor dir name because the
+		// user may mis-use that var to modify the local vendor dir, and
+		// we don't want that to break the embedded vendor dirs.
+		wd := path.Join(base, "vendor", imp.Name)
+		if err := ensureDir(wd); err != nil {
+			Warn("Skipped getting %s (vendor/ error): %s\n", imp.Name, err)
+			continue
+		}
+
+		// How do we want to do this? Should we run the glide command,
+		// which would allow environmental control, or should we just
+		// run the update route in that directory?
+		if err := VcsGet(imp, wd); err != nil {
+			Warn("Skipped getting %s: %s\n", imp.Name, err)
+		}
+	}
+	return nil
+}
+
+func ensureDir(dirpath string) error {
+	if fi, err := os.Stat(dirpath); err == nil && fi.IsDir() {
+		return nil
+	}
+	return os.MkdirAll(dirpath, 0755)
+}
+
 func needsGlideUp(dir string) bool {
 	stat, err := os.Stat(path.Join(dir, "glide.yaml"))
 	if err != nil || stat.IsDir() {
diff --git a/glide.go b/glide.go
index 535fa03..b5b43fe 100644
--- a/glide.go
+++ b/glide.go
@@ -293,6 +293,7 @@
 		Using("package").From("cxt:package").
 		Using("conf").From("cxt:cfg").
 		Does(cmd.MergeToYaml, "merged").Using("conf").From("cxt:cfg").
+		Does(cmd.Recurse, "recurse").Using("conf").From("cxt:cfg").
 		Does(cmd.WriteYaml, "out").
 		Using("yaml.Node").From("cxt:merged").
 		Using("filename").WithDefault("glide.yaml").From("cxt:yaml")
