restore: fix recursive error handling
diff --git a/restore.go b/restore.go
index fbf443e..5cfca48 100644
--- a/restore.go
+++ b/restore.go
@@ -69,7 +69,7 @@
 		go func() {
 			defer wg.Done()
 			for d := range depC {
-				if err := downloadDependency(d, vendorDir(), false); err != nil {
+				if err := downloadDependency(d, &errors, vendorDir(), false); err != nil {
 					log.Printf("%s: %v", d.Importpath, err)
 					atomic.AddUint32(&errors, 1)
 				}
@@ -90,7 +90,7 @@
 	return nil
 }
 
-func downloadDependency(dep vendor.Dependency, vendorDir string, recursive bool) error {
+func downloadDependency(dep vendor.Dependency, errors *uint32, vendorDir string, recursive bool) error {
 	if recursive {
 		log.Printf("fetching recursive %s", dep.Importpath)
 	} else {
@@ -132,11 +132,10 @@
 		if err != nil {
 			return fmt.Errorf("could not load manifest: %v", err)
 		}
-		var errors uint32
 		for _, d := range m.Dependencies {
-			if err := downloadDependency(d, venDir, true); err != nil {
+			if err := downloadDependency(d, errors, venDir, true); err != nil {
 				log.Printf("%s: %v", d.Importpath, err)
-				atomic.AddUint32(&errors, 1)
+				atomic.AddUint32(errors, 1)
 			}
 		}
 	}