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)
 			}
 		}
 	}
