diff --git a/docs/hazmat/backends/index.rst b/docs/hazmat/backends/index.rst
index 56d1890..a8a1ff3 100644
--- a/docs/hazmat/backends/index.rst
+++ b/docs/hazmat/backends/index.rst
@@ -8,15 +8,11 @@
 
 .. currentmodule:: cryptography.hazmat.backends
 
-``cryptography`` aims to support multiple backends to ensure it can provide
-the widest number of supported cryptographic algorithms as well as supporting
-platform specific implementations.
+``cryptography`` was originally designed to support multiple backends, but
+this design has been deprecated.
 
 You can get the default backend by calling :func:`~default_backend`.
 
-The default backend will change over time as we implement new backends and
-the libraries we use in those backends changes.
-
 
 .. function:: default_backend()
 
@@ -31,5 +27,4 @@
     :maxdepth: 1
 
     openssl
-    multibackend
     interfaces
diff --git a/docs/hazmat/backends/multibackend.rst b/docs/hazmat/backends/multibackend.rst
deleted file mode 100644
index 0aae04a..0000000
--- a/docs/hazmat/backends/multibackend.rst
+++ /dev/null
@@ -1,45 +0,0 @@
-.. hazmat::
-
-MultiBackend
-============
-
-.. currentmodule:: cryptography.hazmat.backends.multibackend
-
-.. class:: MultiBackend(backends)
-
-    .. versionadded:: 0.2
-
-    This class allows you to combine multiple backends into a single backend
-    that offers the combined features of all of its constituents.
-
-    .. testsetup::
-
-        from cryptography import utils
-        from cryptography.exceptions import UnsupportedAlgorithm, _Reasons
-        from cryptography.hazmat.backends.interfaces import HashBackend
-        from cryptography.hazmat.backends.openssl.backend import backend as backend2
-
-        @utils.register_interface(HashBackend)
-        class DummyHashBackend(object):
-            def hash_supported(self, algorithm):
-                return False
-
-            def create_hash_ctx(self, algorithm):
-                raise UnsupportedAlgorithm("", _Reasons.UNSUPPORTED_HASH)
-
-        backend1 = DummyHashBackend()
-
-    .. doctest::
-
-        >>> from cryptography.hazmat.backends.multibackend import MultiBackend
-        >>> from cryptography.hazmat.primitives import hashes
-        >>> backend1.hash_supported(hashes.SHA256())
-        False
-        >>> backend2.hash_supported(hashes.SHA256())
-        True
-        >>> multi_backend = MultiBackend([backend1, backend2])
-        >>> multi_backend.hash_supported(hashes.SHA256())
-        True
-
-    :param backends: A ``list`` of backend objects. Backends are checked for
-                     feature support in the order they appear in this list.
