diff --git a/core/installer/tasks/tasks.go b/core/installer/tasks/tasks.go
index c097af3..1cc053b 100644
--- a/core/installer/tasks/tasks.go
+++ b/core/installer/tasks/tasks.go
@@ -157,12 +157,16 @@
 			})
 			go subtasks[i].Start()
 		}
-		return <-errCh
+		cnt := 0
 		for _ = range subtasks {
 			err := <-errCh
 			if err != nil {
 				return err
 			}
+			cnt++
+			if cnt == len(subtasks) {
+				break
+			}
 		}
 		return nil
 	}
diff --git a/core/installer/tasks/tasks_test.go b/core/installer/tasks/tasks_test.go
index 194be44..f914c88 100644
--- a/core/installer/tasks/tasks_test.go
+++ b/core/installer/tasks/tasks_test.go
@@ -2,7 +2,9 @@
 
 import (
 	"fmt"
+	"sync"
 	"testing"
+	"time"
 )
 
 func TestLeaf(t *testing.T) {
@@ -78,3 +80,34 @@
 		t.Fatalf("Expected two, got %s", err)
 	}
 }
+
+func TestConcurrentTaskSucceeds_WaitsForAllChildren(t *testing.T) {
+	cnt := 0
+	var m sync.Mutex
+	one := newLeafTask("one", func() error {
+		m.Lock()
+		defer m.Unlock()
+		cnt++
+		return nil
+	})
+	two := newLeafTask("two", func() error {
+		time.Sleep(1 * time.Second)
+		m.Lock()
+		defer m.Unlock()
+		cnt++
+		return nil
+	})
+	l := newConcurrentParentTask("parent", true, &one, &two)
+	done := make(chan error)
+	l.OnDone(func(err error) {
+		done <- err
+	})
+	go l.Start()
+	err := <-done
+	if err != nil {
+		t.Fatalf("Expected nil, got %s", err.Error())
+	}
+	if cnt != 2 {
+		t.Fatalf("Expected 2, got %d", cnt)
+	}
+}
