diff --git a/provision/docker/containers_test.go b/provision/docker/containers_test.go
index <HASH>..<HASH> 100644
--- a/provision/docker/containers_test.go
+++ b/provision/docker/containers_test.go
@@ -7,6 +7,7 @@ package docker
 import (
 	"io/ioutil"
 	"net/http"
+	"regexp"
 	"strings"
 
 	dtesting "github.com/fsouza/go-dockerclient/testing"
@@ -99,8 +100,14 @@ func (s *S) TestMoveContainersUnknownDest(c *check.C) {
 	parts := strings.Split(buf.String(), "\n")
 	c.Assert(parts, check.HasLen, 6)
 	c.Assert(parts[0], check.Matches, ".*Moving 2 units.*")
-	c.Assert(parts[3], check.Matches, "(?s).*Error moving unit.*Caused by:.*unknown.*not found")
-	c.Assert(parts[4], check.Matches, "(?s).*Error moving unit.*Caused by:.*unknown.*not found")
+	var matches int
+	errorRegexp := regexp.MustCompile(`(?s).*Error moving unit.*Caused by:.*unknown.*not found`)
+	for _, line := range parts[2:] {
+		if errorRegexp.MatchString(line) {
+			matches++
+		}
+	}
+	c.Assert(matches, check.Equals, 2)
 }
 
 func (s *S) TestMoveContainer(c *check.C) {
provision/docker: make test more reliable

The containers are moved in parallel, so we cannot guarantee the order
of the messages, here's what happens:

 - the first message is always "Moving 2 units"
 - the second message is always "Moving unit 1... from localhost ->
   unknown"
 - the third message might be "Moving unit 2... from localhost ->
   unknown" or "Error moving unit 1..."

That's why I'm checking whether the error message happens twice,
starting in the third log line.