diff --git a/synapse/handlers/auth.py b/synapse/handlers/auth.py
index ee2b285cc1f99c30e303574a52b00e7018c72e67..12585abb1be539ff67751c68446f4f9e34693729 100644
--- a/synapse/handlers/auth.py
+++ b/synapse/handlers/auth.py
@@ -30,8 +30,6 @@ import simplejson
 
 import synapse.util.stringutils as stringutils
 
-import ldap
-
 
 logger = logging.getLogger(__name__)
 
@@ -60,6 +58,9 @@ class AuthHandler(BaseHandler):
         self.ldap_email_property = hs.config.ldap_email_property
         self.ldap_full_name_property = hs.config.ldap_full_name_property
 
+        if self.ldap_enabled:
+            import ldap
+
         self.hs = hs  # FIXME better possibility to access registrationHandler later?
 
     @defer.inlineCallbacks
@@ -445,6 +446,8 @@ class AuthHandler(BaseHandler):
             logger.info("LDAP not configured")
             defer.returnValue(False)
 
+        import ldap
+
         logger.info("Authenticating %s with LDAP" % user_id)
         try:
             ldap_url = "%s:%s" % (self.ldap_server, self.ldap_port)
diff --git a/synapse/python_dependencies.py b/synapse/python_dependencies.py
index d6b6e82bd752c4e33ea4b167e96e37c5ef303124..cf1414b4dbf051eca04f609f8917e03d1d064b29 100644
--- a/synapse/python_dependencies.py
+++ b/synapse/python_dependencies.py
@@ -37,7 +37,6 @@ REQUIREMENTS = {
     "pysaml2>=3.0.0,<4.0.0": ["saml2>=3.0.0,<4.0.0"],
     "pymacaroons-pynacl": ["pymacaroons"],
     "pyjwt": ["jwt"],
-    "python-ldap": ["ldap"],
 }
 CONDITIONAL_REQUIREMENTS = {
     "web_client": {