--- a/worker/setup.py
+++ b/worker/setup.py
@@ -151,7 +151,6 @@
 if setuptools is not None:
     setup_args['install_requires'] = [
         'twisted ' + twisted_ver,
-        'future',
     ]
 
     if sys.version_info >= (3, 6):
--- a/worker/buildbot_worker/compat.py
+++ b/worker/buildbot_worker/compat.py
@@ -19,9 +19,7 @@
 between Python 2 and Python 3.
 """
 
-from __future__ import absolute_import
-from __future__ import print_function
-from future.utils import text_type
+text_type = str
 
 if str != bytes:
     # On Python 3 and higher, str and bytes
--- a/worker/buildbot_worker/pbutil.py
+++ b/worker/buildbot_worker/pbutil.py
@@ -17,10 +17,6 @@
 """Base classes handy for use with PB clients.
 """
 
-from __future__ import absolute_import
-from __future__ import print_function
-from future.utils import iteritems
-
 from twisted.application.internet import backoffPolicy
 from twisted.cred import error
 from twisted.internet import defer
@@ -153,6 +149,6 @@
         return bytes2unicode(data, encoding, errors)
     if data_type in (dict, list, tuple):
         if data_type == dict:
-            data = iteritems(data)
+            data = data.items()
         return data_type(map(decode, data))
     return data
--- a/worker/buildbot_worker/runprocess.py
+++ b/worker/buildbot_worker/runprocess.py
@@ -17,12 +17,9 @@
 Support for running 'shell commands'
 """
 
-from __future__ import absolute_import
-from __future__ import print_function
-from future.utils import PY3
-from future.utils import iteritems
-from future.utils import string_types
-from future.utils import text_type
+PY3 = True
+string_types = (str,)
+text_type = str
 
 import os
 import pprint
@@ -344,7 +341,7 @@
         if not os.path.exists(workdir):
             os.makedirs(workdir)
         if environ:
-            for key, v in iteritems(environ):
+            for key, v in environ.items():
                 if isinstance(v, list):
                     # Need to do os.pathsep translation.  We could either do that
                     # by replacing all incoming ':'s with os.pathsep, or by
@@ -367,7 +364,7 @@
                 # environment
                 if key not in environ or environ[key] is not None:
                     newenv[key] = os.environ[key]
-            for key, v in iteritems(environ):
+            for key, v in environ.items():
                 if v is not None:
                     if not isinstance(v, string_types):
                         raise RuntimeError("'env' values must be strings or "
--- a/worker/buildbot_worker/scripts/windows_service.py
+++ b/worker/buildbot_worker/scripts/windows_service.py
@@ -64,11 +64,6 @@
 
 # Written by Mark Hammond, 2006.
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from future.builtins import range
-
 import os
 import sys
 import threading
--- a/worker/buildbot_worker/test/unit/test_bot.py
+++ b/worker/buildbot_worker/test/unit/test_bot.py
@@ -13,10 +13,6 @@
 #
 # Copyright Buildbot Team Members
 
-from __future__ import absolute_import
-from __future__ import print_function
-from future.builtins import range
-
 import multiprocessing
 import os
 import shutil
--- a/worker/buildbot_worker/test/util/misc.py
+++ b/worker/buildbot_worker/test/util/misc.py
@@ -18,10 +18,8 @@
 # and builtins module on Python 3, because we need to override
 # the actual native open method.
 
-from __future__ import absolute_import
-from __future__ import print_function
-from future.utils import PY3
-from future.utils import string_types
+PY3 = True
+string_types = (str,)
 
 import errno
 import os
--- a/worker/buildbot_worker/util/__init__.py
+++ b/worker/buildbot_worker/util/__init__.py
@@ -13,7 +13,7 @@
 #
 # Copyright Buildbot Team Members
 
-from future.utils import text_type
+text_type = str
 
 import itertools
 import textwrap
--- a/worker/buildbot_worker/commands/utils.py
+++ b/worker/buildbot_worker/commands/utils.py
@@ -13,9 +13,7 @@
 #
 # Copyright Buildbot Team Members
 
-from __future__ import absolute_import
-from __future__ import print_function
-from future.utils import text_type
+text_type = str
 
 import os
 
