diff --git a/action/get.go b/action/get.go
index 7b96782..cf5ed40 100644
--- a/action/get.go
+++ b/action/get.go
@@ -15,7 +15,7 @@
 // Get fetches one or more dependencies and installs.
 //
 // This includes resolving dependency resolution and re-generating the lock file.
-func Get(names []string, installer *repo.Installer, insecure bool) {
+func Get(names []string, installer *repo.Installer, insecure, skipRecursive bool) {
 	base := gpath.Basepath()
 	EnsureGopath()
 	EnsureVendorDir()
@@ -38,19 +38,22 @@
 	// Prior to resolving dependencies we need to start working with a clone
 	// of the conf because we'll be making real changes to it.
 	confcopy := conf.Clone()
-	installer.Config = confcopy
 
-	// Get all repos and update them.
-	// TODO: Can we streamline this in any way? The reason that we update all
-	// of the dependencies is that we need to re-negotiate versions. For example,
-	// if an existing dependency has the constraint >1.0 and this new package
-	// adds the constraint <2.0, then this may re-resolve the existing dependency
-	// to be betwee 1.0 and 2.0. But changing that dependency may then result
-	// in that dependency's dependencies changing... so we sorta do the whole
-	// thing to be safe.
-	err = installer.Update(confcopy)
-	if err != nil {
-		msg.Die("Could not update packages: %s", err)
+	if !skipRecursive {
+		installer.Config = confcopy
+
+		// Get all repos and update them.
+		// TODO: Can we streamline this in any way? The reason that we update all
+		// of the dependencies is that we need to re-negotiate versions. For example,
+		// if an existing dependency has the constraint >1.0 and this new package
+		// adds the constraint <2.0, then this may re-resolve the existing dependency
+		// to be betwee 1.0 and 2.0. But changing that dependency may then result
+		// in that dependency's dependencies changing... so we sorta do the whole
+		// thing to be safe.
+		err = installer.Update(confcopy)
+		if err != nil {
+			msg.Die("Could not update packages: %s", err)
+		}
 	}
 
 	// Set Reference
@@ -67,9 +70,12 @@
 	if err := conf.WriteFile(glidefile); err != nil {
 		msg.Die("Failed to write glide YAML file: %s", err)
 	}
-
-	// Write lock
-	writeLock(conf, confcopy, base)
+	if !skipRecursive {
+		// Write lock
+		writeLock(conf, confcopy, base)
+	} else {
+		msg.Warn("Skipping lockfile generation because full dependency tree is not being calculated")
+	}
 }
 
 func writeLock(conf, confcopy *cfg.Config, base string) {
diff --git a/action/update.go b/action/update.go
index a671e8d..47f5e47 100644
--- a/action/update.go
+++ b/action/update.go
@@ -11,7 +11,7 @@
 )
 
 // Update updates repos and the lock file from the main glide yaml.
-func Update(installer *repo.Installer) {
+func Update(installer *repo.Installer, skipRecursive bool) {
 	base := "."
 	EnsureGopath()
 	EnsureVendorDir()
@@ -35,40 +35,42 @@
 		msg.Die("Failed to set initial config references: %s", err)
 	}
 
-	// Prior to resolving dependencies we need to start working with a clone
-	// of the conf because we'll be making real changes to it.
 	confcopy := conf.Clone()
-	installer.Config = confcopy
 
-	// Get all repos and update them.
-	err := installer.Update(confcopy)
-	if err != nil {
-		msg.Die("Could not update packages: %s", err)
+	if !skipRecursive {
+		// Prior to resolving dependencies we need to start working with a clone
+		// of the conf because we'll be making real changes to it.
+		installer.Config = confcopy
+
+		// Get all repos and update them.
+		err := installer.Update(confcopy)
+		if err != nil {
+			msg.Die("Could not update packages: %s", err)
+		}
+
+		// TODO: There is no support here for importing Godeps, GPM, and GB files.
+		// I think that all we really need to do now is hunt for these files, and then
+		// roll their version numbers into the config file.
+
+		// Set references. There may be no remaining references to set since the
+		// installer set them as it went to make sure it parsed the right imports
+		// from the right version of the package.
+		msg.Info("Setting references for remaining imports")
+		if err := repo.SetReference(confcopy); err != nil {
+			msg.Error("Failed to set references: %s (Skip to cleanup)", err)
+		}
+
+		// Flatten
+		// I don't think we need flatten anymore. The installer.Update logic should
+		// find and install all of the necessary dependencies. And then the version
+		// setting logic should correctly set versions.
+		//
+		// The edge case, which exist today (but innoculously) is where an older
+		// version requires dependencies that a newer repo checkout does not
+		// have. In that case, it seems that we may get to the point where we'd
+		// have to run Update twice.
+		msg.Warn("Flatten not implemented.")
 	}
-
-	// TODO: There is no support here for importing Godeps, GPM, and GB files.
-	// I think that all we really need to do now is hunt for these files, and then
-	// roll their version numbers into the config file.
-
-	// Set references. There may be no remaining references to set since the
-	// installer set them as it went to make sure it parsed the right imports
-	// from the right version of the package.
-	msg.Info("Setting references for remaining imports")
-	if err := repo.SetReference(confcopy); err != nil {
-		msg.Error("Failed to set references: %s (Skip to cleanup)", err)
-	}
-
-	// Flatten
-	// I don't think we need flatten anymore. The installer.Update logic should
-	// find and install all of the necessary dependencies. And then the version
-	// setting logic should correctly set versions.
-	//
-	// The edge case, which exist today (but innoculously) is where an older
-	// version requires dependencies that a newer repo checkout does not
-	// have. In that case, it seems that we may get to the point where we'd
-	// have to run Update twice.
-	msg.Warn("Flatten not implemented.")
-
 	// Vendored cleanup
 	// VendoredCleanup. This should ONLY be run if UpdateVendored was specified.
 	if installer.UpdateVendored {
@@ -84,50 +86,20 @@
 	// from the project. A removed dependency should warn and an added dependency
 	// should be added to the glide.yaml file. See issue #193.
 
-	// Write lock
-	hash, err := conf.Hash()
-	if err != nil {
-		msg.Die("Failed to generate config hash. Unable to generate lock file.")
+	if !skipRecursive {
+		// Write lock
+		hash, err := conf.Hash()
+		if err != nil {
+			msg.Die("Failed to generate config hash. Unable to generate lock file.")
+		}
+		lock := cfg.NewLockfile(confcopy.Imports, hash)
+		if err := lock.WriteFile(filepath.Join(base, gpath.LockFile)); err != nil {
+			msg.Error("Could not write lock file to %s: %s", base, err)
+			return
+		}
+
+		msg.Info("Project relies on %d dependencies.", len(confcopy.Imports))
+	} else {
+		msg.Warn("Skipping lockfile generation because full dependency tree is not being calculated")
 	}
-	lock := cfg.NewLockfile(confcopy.Imports, hash)
-	if err := lock.WriteFile(filepath.Join(base, gpath.LockFile)); err != nil {
-		msg.Error("Could not write lock file to %s: %s", base, err)
-		return
-	}
-
-	msg.Info("Project relies on %d dependencies.", len(confcopy.Imports))
-
-	/*
-		Does(cmd.VendoredSetup, "cfg").
-		Using("conf").From("cxt:cfg").
-		Using("update").From("cxt:updateVendoredDeps").
-
-		Does(cmd.UpdateImports, "dependencies").
-		Using("conf").From("cxt:cfg").
-		Using("force").From("cxt:forceUpdate").
-		Using("packages").From("cxt:packages").
-		Using("home").From("cxt:home").
-		Using("cache").From("cxt:useCache").
-		Using("cacheGopath").From("cxt:cacheGopath").
-		Using("useGopath").From("cxt:useGopath").
-		Does(cmd.SetReference, "version").Using("conf").From("cxt:cfg").
-		Does(cmd.Flatten, "flattened").Using("conf").From("cxt:cfg").
-		Using("packages").From("cxt:packages").
-		Using("force").From("cxt:forceUpdate").
-		Using("skip").From("cxt:skipFlatten").
-		Using("home").From("cxt:home").
-		Using("cache").From("cxt:useCache").
-		Using("cacheGopath").From("cxt:cacheGopath").
-		Using("useGopath").From("cxt:useGopath").
-		Does(cmd.VendoredCleanUp, "_").
-		Using("conf").From("cxt:flattened").
-		Using("update").From("cxt:updateVendoredDeps").
-		Does(cmd.WriteYaml, "out").
-		Using("conf").From("cxt:cfg").
-		Using("filename").From("cxt:toPath").
-		Using("toStdout").From("cxt:toStdout").
-		Does(cmd.WriteLock, "lock").
-		Using("lockfile").From("cxt:Lockfile").
-		Using("skip").From("cxt:skipFlatten")
-	*/
 }
diff --git a/glide.go b/glide.go
index 97e0dfb..e7900a8 100644
--- a/glide.go
+++ b/glide.go
@@ -202,7 +202,7 @@
 				}
 				packages := []string(c.Args())
 				insecure := c.Bool("insecure")
-				action.Get(packages, inst, insecure)
+				action.Get(packages, inst, insecure, c.Bool("no-recursive"))
 			},
 		},
 		{
@@ -344,10 +344,6 @@
 					Usage: "Delete vendor packages not specified in config.",
 				},
 				cli.BoolFlag{
-					Name:  "no-recursive, quick",
-					Usage: "Disable updating dependencies' dependencies. Only update things in glide.yaml. (DEPRECATED: This no longer has any effect.)",
-				},
-				cli.BoolFlag{
 					Name:  "force",
 					Usage: "If there was a change in the repo or VCS switch to new one. Warning: changes will be lost.",
 				},
@@ -460,7 +456,7 @@
 					Home:           gpath.Home(),
 				}
 
-				action.Update(installer)
+				action.Update(installer, c.Bool("no-recursive"))
 			},
 		},
 		{
