diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 0ecf333..9d68d13 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -19,7 +19,7 @@
   and
   :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`.
 * Add support for parsing X.509 requests with
-  :func:`~cryptography.x509.load_pem_x509_request`.
+  :func:`~cryptography.x509.load_pem_x509_csr`.
 
 0.8.1 - 2015-03-20
 ~~~~~~~~~~~~~~~~~~
diff --git a/docs/hazmat/backends/interfaces.rst b/docs/hazmat/backends/interfaces.rst
index 1f71f5d..2b53dfd 100644
--- a/docs/hazmat/backends/interfaces.rst
+++ b/docs/hazmat/backends/interfaces.rst
@@ -510,10 +510,10 @@
 
         :returns: An instance of :class:`~cryptography.x509.Certificate`.
 
-    .. method:: load_pem_x509_request(data)
+    .. method:: load_pem_x509_csr(data)
 
         .. versionadded:: 0.9
 
         :param bytes data: PEM formatted certificate request data.
 
-        :returns: An instance of :class:`~cryptography.x509.Request`.
+        :returns: An instance of :class:`~cryptography.x509.CSR`.
diff --git a/docs/x509.rst b/docs/x509.rst
index 2ff1290..7f681ea 100644
--- a/docs/x509.rst
+++ b/docs/x509.rst
@@ -77,10 +77,10 @@
     >>> cert.serial
     2
 
-Loading Certificate Requests
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Loading CSRs
+~~~~~~~~~~~~
 
-.. function:: load_pem_x509_request(data, backend)
+.. function:: load_pem_x509_csr(data, backend)
 
     .. versionadded:: 0.9
 
@@ -95,7 +95,7 @@
         :class:`~cryptography.hazmat.backends.interfaces.X509Backend`
         interface.
 
-    :returns: An instance of :class:`~cryptography.x509.Request`.
+    :returns: An instance of :class:`~cryptography.x509.CSR`.
 
 .. testsetup::
 
@@ -125,7 +125,7 @@
     >>> from cryptography import x509
     >>> from cryptography.hazmat.backends import default_backend
     >>> from cryptography.hazmat.primitives import hashes
-    >>> request = x509.load_pem_x509_request(pem_req_data, default_backend())
+    >>> request = x509.load_pem_x509_csr(pem_req_data, default_backend())
     >>> isinstance(request.signature_hash_algorithm, hashes.SHA1)
     True
 
@@ -263,10 +263,10 @@
             ...     print(ext)
             <Extension(oid=<ObjectIdentifier(oid=2.5.29.19, name=basicConstraints)>, critical=True, value=<BasicConstraints(ca=True, path_length=None)>)>
 
-X.509 Certificate Request Object
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+X.509 CSR Object
+~~~~~~~~~~~~~~~~
 
-.. class:: Request
+.. class:: CSR
 
     .. versionadded:: 0.9
 
diff --git a/src/cryptography/hazmat/backends/interfaces.py b/src/cryptography/hazmat/backends/interfaces.py
index 44a3d81..354b514 100644
--- a/src/cryptography/hazmat/backends/interfaces.py
+++ b/src/cryptography/hazmat/backends/interfaces.py
@@ -263,7 +263,7 @@
         """
 
     @abc.abstractmethod
-    def load_pem_x509_request(self, data):
+    def load_pem_x509_csr(self, data):
         """
-        Load an X.509 request from PEM encoded data.
+        Load an X.509 CSR from PEM encoded data.
         """
diff --git a/src/cryptography/hazmat/backends/multibackend.py b/src/cryptography/hazmat/backends/multibackend.py
index b09484c..86ddc3b 100644
--- a/src/cryptography/hazmat/backends/multibackend.py
+++ b/src/cryptography/hazmat/backends/multibackend.py
@@ -325,11 +325,11 @@
             _Reasons.UNSUPPORTED_X509
         )
 
-    def load_pem_x509_request(self, data):
+    def load_pem_x509_csr(self, data):
         for b in self._filtered_backends(
             X509Backend
         ):
-            return b.load_pem_x509_request(data)
+            return b.load_pem_x509_csr(data)
 
         raise UnsupportedAlgorithm(
             "This backend does not support X.509.",
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index 5dfc31c..48fdcb7 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -34,7 +34,7 @@
 from cryptography.hazmat.backends.openssl.rsa import (
     _RSAPrivateKey, _RSAPublicKey
 )
-from cryptography.hazmat.backends.openssl.x509 import _Certificate, _Request
+from cryptography.hazmat.backends.openssl.x509 import _CSR, _Certificate
 from cryptography.hazmat.bindings.openssl.binding import Binding
 from cryptography.hazmat.primitives import hashes, serialization
 from cryptography.hazmat.primitives.asymmetric import dsa, ec, rsa
@@ -820,7 +820,7 @@
         x509 = self._ffi.gc(x509, self._lib.X509_free)
         return _Certificate(self, x509)
 
-    def load_pem_x509_request(self, data):
+    def load_pem_x509_csr(self, data):
         mem_bio = self._bytes_to_bio(data)
         x509_req = self._lib.PEM_read_bio_X509_REQ(
             mem_bio.bio, self._ffi.NULL, self._ffi.NULL, self._ffi.NULL
@@ -830,7 +830,7 @@
             raise ValueError("Unable to load request")
 
         x509_req = self._ffi.gc(x509_req, self._lib.X509_REQ_free)
-        return _Request(self, x509_req)
+        return _CSR(self, x509_req)
 
     def _load_key(self, openssl_read_func, convert_func, data, password):
         mem_bio = self._bytes_to_bio(data)
diff --git a/src/cryptography/hazmat/backends/openssl/x509.py b/src/cryptography/hazmat/backends/openssl/x509.py
index fb76779..e936201 100644
--- a/src/cryptography/hazmat/backends/openssl/x509.py
+++ b/src/cryptography/hazmat/backends/openssl/x509.py
@@ -218,8 +218,8 @@
         return x509.BasicConstraints(ca, path_length)
 
 
-@utils.register_interface(x509.Request)
-class _Request(object):
+@utils.register_interface(x509.CSR)
+class _CSR(object):
     def __init__(self, backend, x509_req):
         self._backend = backend
         self._x509_req = x509_req
diff --git a/src/cryptography/x509.py b/src/cryptography/x509.py
index 7b61e81..d58ca0b 100644
--- a/src/cryptography/x509.py
+++ b/src/cryptography/x509.py
@@ -60,8 +60,8 @@
     return backend.load_der_x509_certificate(data)
 
 
-def load_pem_x509_request(data, backend):
-    return backend.load_pem_x509_request(data)
+def load_pem_x509_csr(data, backend):
+    return backend.load_pem_x509_csr(data)
 
 
 class InvalidVersion(Exception):
@@ -343,7 +343,7 @@
 
 
 @six.add_metaclass(abc.ABCMeta)
-class Request(object):
+class CSR(object):
     @abc.abstractmethod
     def public_key(self):
         """
diff --git a/tests/hazmat/backends/test_multibackend.py b/tests/hazmat/backends/test_multibackend.py
index 8f833ad..4030538 100644
--- a/tests/hazmat/backends/test_multibackend.py
+++ b/tests/hazmat/backends/test_multibackend.py
@@ -197,7 +197,7 @@
     def load_der_x509_certificate(self, data):
         pass
 
-    def load_pem_x509_request(self, data):
+    def load_pem_x509_csr(self, data):
         pass
 
 
@@ -475,7 +475,7 @@
 
         backend.load_pem_x509_certificate(b"certdata")
         backend.load_der_x509_certificate(b"certdata")
-        backend.load_pem_x509_request(b"reqdata")
+        backend.load_pem_x509_csr(b"reqdata")
 
         backend = MultiBackend([])
         with raises_unsupported_algorithm(_Reasons.UNSUPPORTED_X509):
@@ -483,4 +483,4 @@
         with raises_unsupported_algorithm(_Reasons.UNSUPPORTED_X509):
             backend.load_der_x509_certificate(b"certdata")
         with raises_unsupported_algorithm(_Reasons.UNSUPPORTED_X509):
-            backend.load_pem_x509_request(b"reqdata")
+            backend.load_pem_x509_csr(b"reqdata")
diff --git a/tests/test_x509.py b/tests/test_x509.py
index 8f18888..3665adc 100644
--- a/tests/test_x509.py
+++ b/tests/test_x509.py
@@ -343,7 +343,7 @@
     def test_load_rsa_certificate_request(self, backend):
         request = _load_cert(
             os.path.join("x509", "requests", "rsa_sha1.pem"),
-            x509.load_pem_x509_request,
+            x509.load_pem_x509_csr,
             backend
         )
         assert isinstance(request.signature_hash_algorithm, hashes.SHA1)
@@ -362,7 +362,7 @@
     def test_unsupported_signature_hash_algorithm_request(self, backend):
         request = _load_cert(
             os.path.join("x509", "requests", "rsa_md4.pem"),
-            x509.load_pem_x509_request,
+            x509.load_pem_x509_csr,
             backend
         )
         with pytest.raises(UnsupportedAlgorithm):
@@ -423,7 +423,7 @@
     def test_load_dsa_request(self, backend):
         request = _load_cert(
             os.path.join("x509", "requests", "dsa_sha1.pem"),
-            x509.load_pem_x509_request,
+            x509.load_pem_x509_csr,
             backend
         )
         assert isinstance(request.signature_hash_algorithm, hashes.SHA1)
@@ -479,7 +479,7 @@
         _skip_curve_unsupported(backend, ec.SECP384R1())
         request = _load_cert(
             os.path.join("x509", "requests", "ec_sha256.pem"),
-            x509.load_pem_x509_request,
+            x509.load_pem_x509_csr,
             backend
         )
         assert isinstance(request.signature_hash_algorithm, hashes.SHA256)
