Use latest Boulder for integration tests.
diff --git a/.travis.yml b/.travis.yml
index ca06f07d04e..577dcbc4052 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,10 +10,6 @@ before_install:
 # using separate envs with different TOXENVs creates 4x1 Travis build
 # matrix, which allows us to clearly distinguish which component under
 # test has failed
-env:
-  global:
-    - BOULDERPATH=$PWD/boulder/
-
 matrix:
   include:
     - python: "2.7"
diff --git a/tests/boulder-fetch.sh b/tests/boulder-fetch.sh
index 0c0a8009b3a..ef61fe3f57d 100755
--- a/tests/boulder-fetch.sh
+++ b/tests/boulder-fetch.sh
@@ -2,9 +2,15 @@
 # Download and run Boulder instance for integration testing
 set -xe
 
-# Check out special branch until latest docker changes land in Boulder master.
-git clone -b docker-integration https://github.com/letsencrypt/boulder $BOULDERPATH
-cd $BOULDERPATH
+# Clone Boulder into a GOPATH-style directory structure even if Go isn't
+# installed, because Boulder's docker-compose.yml file wll look for it there.
+export GOPATH=${GOPATH:-$HOME/gopath}
+BOULDERPATH=${BOULDERPATH:-$GOPATH/src/github.com/letsencrypt/boulder}
+if [ ! -d ${BOULDERPATH} ]; then
+  git clone --depth=1 https://github.com/letsencrypt/boulder ${BOULDERPATH}
+fi
+
+cd ${BOULDERPATH}
 FAKE_DNS=$(ifconfig docker0 | grep "inet addr:" | cut -d: -f2 | awk '{ print $1}')
-sed -i "s/FAKE_DNS: .*/FAKE_DNS: $FAKE_DNS/" docker-compose.yml
+sed -i "s/FAKE_DNS: .*/FAKE_DNS: ${FAKE_DNS}/" docker-compose.yml
 docker-compose up -d

I'm open to discussion about whether we want to always run against latest Boulder (with potential flakiness), or just bring the fixed branch up to a more modern commit.