diff --git a/repo/installer.go b/repo/installer.go
index bebc3df..f14b595 100644
--- a/repo/installer.go
+++ b/repo/installer.go
@@ -118,8 +118,8 @@
 		return newConf, nil
 	}
 
-	ConcurrentUpdate(newConf.Imports, cwd, i)
-	ConcurrentUpdate(newConf.DevImports, cwd, i)
+	ConcurrentUpdate(newConf.Imports, cwd, i, newConf)
+	ConcurrentUpdate(newConf.DevImports, cwd, i, newConf)
 	return newConf, nil
 }
 
@@ -131,12 +131,12 @@
 
 	dest := i.VendorPath()
 
-	if err := ConcurrentUpdate(conf.Imports, dest, i); err != nil {
+	if err := ConcurrentUpdate(conf.Imports, dest, i, conf); err != nil {
 		return err
 	}
 
 	if useDev {
-		return ConcurrentUpdate(conf.DevImports, dest, i)
+		return ConcurrentUpdate(conf.DevImports, dest, i, conf)
 	}
 
 	return nil
@@ -196,7 +196,7 @@
 		msg.Warn("dev imports not resolved.")
 	}
 
-	err = ConcurrentUpdate(conf.Imports, vpath, i)
+	err = ConcurrentUpdate(conf.Imports, vpath, i, conf)
 
 	return err
 }
@@ -239,7 +239,7 @@
 }
 
 // ConcurrentUpdate takes a list of dependencies and updates in parallel.
-func ConcurrentUpdate(deps []*cfg.Dependency, cwd string, i *Installer) error {
+func ConcurrentUpdate(deps []*cfg.Dependency, cwd string, i *Installer, c *cfg.Config) error {
 	done := make(chan struct{}, concurrentWorkers)
 	in := make(chan *cfg.Dependency, concurrentWorkers)
 	var wg sync.WaitGroup
@@ -275,8 +275,10 @@
 	}
 
 	for _, dep := range deps {
-		wg.Add(1)
-		in <- dep
+		if !c.HasIgnore(dep.Name) {
+			wg.Add(1)
+			in <- dep
+		}
 	}
 
 	wg.Wait()
diff --git a/repo/set_reference.go b/repo/set_reference.go
index f171813..2856b89 100644
--- a/repo/set_reference.go
+++ b/repo/set_reference.go
@@ -43,8 +43,10 @@
 	}
 
 	for _, dep := range conf.Imports {
-		wg.Add(1)
-		in <- dep
+		if !conf.HasIgnore(dep.Name) {
+			wg.Add(1)
+			in <- dep
+		}
 	}
 
 	wg.Wait()
