diff --git a/HsOpenSSL.cabal b/HsOpenSSL.cabal
--- a/HsOpenSSL.cabal
+++ b/HsOpenSSL.cabal
@@ -15,7 +15,7 @@
     encourages you to use and improve the tls package instead as long
     as possible.
     .
-Version:       0.10.3
+Version:       0.10.3.1
 License:       PublicDomain
 License-File:  COPYING
 Author:        Adam Langley, Mikhail Vorozhtsov, PHO, Taru Karttunen
diff --git a/NEWS b/NEWS
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,11 @@
 -*- coding: utf-8 -*-
 
+Changes from 0.10.3 to 0.10.3.1
+-------------------------------
+* Merged #14 "Fixed X509_STORE_CTX bindings vs OpenSSL 0.9.x" by
+  Mikhail Vorozhtsov
+
+
 Changes from 0.10.2.1 to 0.10.3
 -------------------------------
 * Merged #12 "Bindings to some of the X509_STORE_CTX functions" by
diff --git a/OpenSSL/X509/Store.hsc b/OpenSSL/X509/Store.hsc
--- a/OpenSSL/X509/Store.hsc
+++ b/OpenSSL/X509/Store.hsc
@@ -98,10 +98,10 @@
 foreign import ccall unsafe "X509_STORE_CTX_get_current_cert"
   _store_ctx_get_current_cert :: Ptr X509_STORE_CTX -> IO (Ptr X509_)
 
-foreign import ccall unsafe "X509_STORE_CTX_get0_current_issuer"
+foreign import ccall unsafe "HsOpenSSL_X509_STORE_CTX_get0_current_issuer"
   _store_ctx_get0_current_issuer :: Ptr X509_STORE_CTX -> IO (Ptr X509_)
 
-foreign import ccall unsafe "X509_STORE_CTX_get0_current_crl"
+foreign import ccall unsafe "HsOpenSSL_X509_STORE_CTX_get0_current_crl"
   _store_ctx_get0_current_crl :: Ptr X509_STORE_CTX -> IO (Ptr X509_CRL)
 
 foreign import ccall unsafe "X509_STORE_CTX_get_chain"
diff --git a/cbits/HsOpenSSL.c b/cbits/HsOpenSSL.c
--- a/cbits/HsOpenSSL.c
+++ b/cbits/HsOpenSSL.c
@@ -111,6 +111,22 @@
     CRYPTO_add(&crl->references, 1, CRYPTO_LOCK_X509_CRL);
 }
 
+X509* HsOpenSSL_X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx) {
+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
+    return X509_STORE_CTX_get0_current_issuer(ctx);
+#else
+    return ctx->current_issuer;
+#endif
+}
+
+X509_CRL* HsOpenSSL_X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx) {
+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
+    return X509_STORE_CTX_get0_current_crl(ctx);
+#else
+    return ctx->current_crl;
+#endif
+}
+
 /* PKCS#7 *********************************************************************/
 long HsOpenSSL_PKCS7_is_detached(PKCS7* pkcs7) {
     return PKCS7_is_detached(pkcs7);
diff --git a/tests/DSA.hs b/tests/DSA.hs
--- a/tests/DSA.hs
+++ b/tests/DSA.hs
@@ -13,7 +13,7 @@
                       0xb6, 0x21, 0x1b, 0x40,
                       0x62, 0xba, 0x32, 0x24,
                       0xe0, 0x42, 0x7d, 0xd3]
-  (a, b, p, q, g) <- generateParameters 512 $ Just seed
+  (a, b, p, q, g) <- generateDSAParameters 512 $ Just seed
   return $ (a, p, q, g) == (105,
    0x8df2a494492276aa3d25759bb06869cbeac0d83afb8d0cf7cbb8324f0d7882e5d0762fc5b7210eafc2e9adac32ab7aac49693dfbf83724c2ec0736ee31c80291,
    0xc773218c737ec8ee993b4f2ded30f48edace915f,
@@ -22,16 +22,16 @@
 testMessage = BS.pack [1, 2, 3, 4,  5, 6, 7, 8,  9, 10, 11, 12,  13, 14, 15, 16,  17, 18, 19, 20]
 
 test_signVerify = do
-  dsa <- generateParametersAndKey 512 Nothing
-  (a, b) <- signDigestedData dsa testMessage
-  verifyDigestedData dsa testMessage (a, b)
+  dsa <- generateDSAParametersAndKey 512 Nothing
+  (a, b) <- signDigestedDataWithDSA dsa testMessage
+  verifyDigestedDataWithDSA dsa testMessage (a, b)
 
 test_signVerifySpeed = do
-  dsa <- generateParametersAndKey 512 Nothing
+  dsa <- generateDSAParametersAndKey 512 Nothing
 
   let test = do
-        (a, b) <- signDigestedData dsa testMessage
-        True <- verifyDigestedData dsa testMessage (a, b)
+        (a, b) <- signDigestedDataWithDSA dsa testMessage
+        True <- verifyDigestedDataWithDSA dsa testMessage (a, b)
         return ()
 
   starttime <- getClockTime
