diff --git a/OpenSSL/crypto.py b/OpenSSL/crypto.py
index d0026bd..a80d10b 100644
--- a/OpenSSL/crypto.py
+++ b/OpenSSL/crypto.py
@@ -697,6 +697,21 @@
             _raise_current_error()
 
 
+    def get_extensions(self):
+      """
+      Get extensions to the request.
+
+      :return: A list of X509Extension objects.
+      """
+      exts = []
+      _exts = _lib.X509_REQ_get_extensions(self._req)
+      for i in range(0, _lib.sk_X509_EXTENSION_num(_exts)):
+          ext = X509Extension.__new__(X509Extension)
+          ext._extension = _lib.sk_X509_EXTENSION_value(_exts, i)
+          exts.append(ext)
+      return exts
+
+
     def sign(self, pkey, digest):
         """
         Sign the certificate request using the supplied key and digest
diff --git a/OpenSSL/test/test_crypto.py b/OpenSSL/test/test_crypto.py
index 4e42f70..3a6fbb9 100644
--- a/OpenSSL/test/test_crypto.py
+++ b/OpenSSL/test/test_crypto.py
@@ -1108,7 +1108,11 @@
         request = X509Req()
         request.add_extensions([
                 X509Extension(b('basicConstraints'), True, b('CA:false'))])
-        # XXX Add get_extensions so the rest of this unit test can be written.
+        exts = request.get_extensions()
+        self.assertEquals(len(exts), 1)
+        self.assertEquals(exts[0].get_short_name(), b('basicConstraints'))
+        self.assertEquals(exts[0].get_critical(), 1)
+        self.assertEquals(exts[0].get_data(), b('0\x00'))
 
 
     def test_add_extensions_wrong_args(self):
