--- /dev/null
+--- a/crypto.c
++++ b/crypto.c
+@@ -14,6 +14,12 @@
+ #include <openssl/pem.h>
+ #include <openssl/ssl.h>
+
++#ifndef OPENSSL_VERSION
++#define OPENSSL_VERSION SSLEAY_VERSION
++#define OpenSSL_version(x) SSLeay_version(x)
++#define OpenSSL_version_num SSLeay
++#endif
++
+ /*
+
+ This checks data in a struct string against a signature in a second
+@@ -250,14 +256,18 @@ bail_out:
+ void
+ crypto_init(void)
+ {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ /* Just load the crypto library error strings, not SSL */
+ ERR_load_crypto_strings();
++#endif
+ }
+
+ void
+ crypto_finish(void)
+ {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ ERR_free_strings();
++#endif
+ }
+
+ void
+@@ -268,10 +278,10 @@ crypto_warn_openssl_version_changed(void)
+ * OpenSSL library used.
+ * Output a warning if not.
+ */
+- if (SSLeay() != OPENSSL_VERSION_NUMBER) {
++ if (OpenSSL_version_num() != OPENSSL_VERSION_NUMBER) {
+ log_info("Note: compiled using OpenSSL version '%s' headers, but linked to "
+ "OpenSSL version '%s' library",
+ OPENSSL_VERSION_TEXT,
+- SSLeay_version(SSLEAY_VERSION));
++ OpenSSL_version(OPENSSL_VERSION));
+ }
+ }