diff --git a/cmd/recursive_glide.go b/cmd/recursive_glide.go
index d4e5fb2..e9f5b67 100644
--- a/cmd/recursive_glide.go
+++ b/cmd/recursive_glide.go
@@ -12,6 +12,9 @@
 // Recurse looks in all known packages for a glide.yaml files and installs for
 // each one it finds.
 func Recurse(c cookoo.Context, p *cookoo.Params) (interface{}, cookoo.Interrupt) {
+	if !p.Get("enable", true).(bool) {
+		return nil, nil
+	}
 	Info("Checking dependencies for updates.\n")
 	conf := p.Get("conf", &Config{}).(*Config)
 	vend, _ := VendorPath(c)
@@ -68,9 +71,6 @@
 			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)
 			continue
diff --git a/glide.go b/glide.go
index b5b43fe..0f1dee5 100644
--- a/glide.go
+++ b/glide.go
@@ -133,13 +133,26 @@
 		$ glide get github.com/Masterminds/cookoo/web
 
 	The above will install the package github.com/Masterminds/cookoo and add
-	the subpackage 'web'.`,
+	the subpackage 'web'.
+
+	If a fetched dependency has a glide.yaml file, 'get' will also install
+	all of the dependencies for that dependency. Those are installed in a scoped
+	vendir directory. So dependency vendor/foo/bar has its dependencies stored
+	in vendor/foo/bar/vendor. This behavior can be disabled using
+	'--no-recursive'`,
+			Flags: []cli.Flag{
+				cli.BoolFlag{
+					Name:  "no-recursive",
+					Usage: "Disable updating dependencies' dependencies.",
+				},
+			},
 			Action: func(c *cli.Context) {
 				if len(c.Args()) < 1 {
 					fmt.Println("Oops! Package name is required.")
 					os.Exit(1)
 				}
 				cxt.Put("package", c.Args()[0])
+				cxt.Put("recursiveDependencies", !c.Bool("no-recursive"))
 				setupHandler(c, "get", cxt, router)
 			},
 		},
@@ -221,15 +234,26 @@
 			Description: `This uses the native VCS of each package to try to
 	pull the most applicable updates. Packages with fixed refs (Versions or
 	tags) will not be updated. Packages with no ref or with a branch ref will
-	be updated as expected.`,
+	be updated as expected.
+
+	If a dependency has a glide.yaml file, update will read that file and
+	update those dependencies accordingly. Those dependencies are maintained in
+	a scoped vendor directory. 'vendor/foo/bar' will have its dependencies
+	stored in 'vendor/foo/bar/vendor'. This behavior can be disabled with
+	'--no-recursive'.`,
 			Flags: []cli.Flag{
 				cli.BoolFlag{
 					Name:  "delete",
 					Usage: "Delete vendor packages not specified in config.",
 				},
+				cli.BoolFlag{
+					Name:  "no-recursive",
+					Usage: "Disable updating dependencies' dependencies.",
+				},
 			},
 			Action: func(c *cli.Context) {
 				cxt.Put("deleteOptIn", c.Bool("delete"))
+				cxt.Put("recursiveDependencies", !c.Bool("no-recursive"))
 				setupHandler(c, "update", cxt, router)
 			},
 		},
@@ -294,6 +318,7 @@
 		Using("conf").From("cxt:cfg").
 		Does(cmd.MergeToYaml, "merged").Using("conf").From("cxt:cfg").
 		Does(cmd.Recurse, "recurse").Using("conf").From("cxt:cfg").
+		Using("enable").From("cxt:recursiveDependencies").
 		Does(cmd.WriteYaml, "out").
 		Using("yaml.Node").From("cxt:merged").
 		Using("filename").WithDefault("glide.yaml").From("cxt:yaml")
@@ -315,7 +340,8 @@
 		Using("optIn").From("cxt:deleteOptIn").
 		Does(cmd.UpdateImports, "dependencies").Using("conf").From("cxt:cfg").
 		Does(cmd.SetReference, "version").Using("conf").From("cxt:cfg").
-		Does(cmd.Recurse, "recurse").Using("conf").From("cxt:cfg")
+		Does(cmd.Recurse, "recurse").Using("conf").From("cxt:cfg").
+		Using("enable").From("cxt:recursiveDependencies")
 
 	//Does(cmd.Rebuild, "rebuild").Using("conf").From("cxt:cfg")
 
