diff --git a/tox.ini b/tox.ini
index 52d93c65e52b53f976a3920ed19bb162d1bb8371..39ad30536055fe7f44c848c87022185d4445f3e8 100644
--- a/tox.ini
+++ b/tox.ini
@@ -8,8 +8,15 @@ deps =
     mock
     python-subunit
     junitxml
+
+    # needed by some of the tests
+    lxml
+
 setenv =
     PYTHONDONTWRITEBYTECODE = no_byte_code
+    # As of twisted 16.4, trial tries to import the tests as a package, which
+    # means it needs to be on the pythonpath.
+    PYTHONPATH = {toxinidir}
 commands =
     /bin/sh -c "find {toxinidir} -name '*.pyc' -delete ; coverage run {env:COVERAGE_OPTS:} --source={toxinidir}/synapse \
         {envbindir}/trial {env:TRIAL_FLAGS:} {posargs:tests} {env:TOXSUFFIX:}"