Try dynamically loading crypto_X509Name_New on Windows
diff --git a/OpenSSL/crypto/crypto.h b/OpenSSL/crypto/crypto.h
index fe25475..75961a7 100644
--- a/OpenSSL/crypto/crypto.h
+++ b/OpenSSL/crypto/crypto.h
@@ -65,7 +65,7 @@
 
 #if defined(PY3) || defined(crypto_MODULE)
 
-__declspec(dllexport) extern crypto_X509_New_RETURN      crypto_X509_New      crypto_X509_New_PROTO;
+extern crypto_X509_New_RETURN      crypto_X509_New      crypto_X509_New_PROTO;
 extern crypto_X509Name_New_RETURN  crypto_X509Name_New  crypto_X509Name_New_PROTO;
 extern crypto_X509Req_New_RETURN   crypto_X509Req_New   crypto_X509Req_New_PROTO;
 extern crypto_X509Store_New_RETURN crypto_X509Store_New crypto_X509Store_New_PROTO;
diff --git a/OpenSSL/ssl/connection.c b/OpenSSL/ssl/connection.c
index 0289876..0796352 100755
--- a/OpenSSL/ssl/connection.c
+++ b/OpenSSL/ssl/connection.c
@@ -861,7 +861,7 @@
             exception_from_error_queue(ssl_Error);
             return NULL;
         }
-        CA = (PyObject *)crypto_X509Name_New(CAName, 1);
+        CA = (PyObject *)new_x509name(CAName, 1);
         if (CA == NULL) {
             X509_NAME_free(CAName);
             Py_DECREF(CAList);
diff --git a/OpenSSL/ssl/ssl.c b/OpenSSL/ssl/ssl.c
index 8ac4420..b286b88 100644
--- a/OpenSSL/ssl/ssl.c
+++ b/OpenSSL/ssl/ssl.c
@@ -73,6 +73,18 @@
     PyObject *ssl_api_object;
 
     import_crypto();
+#else
+#   ifdef WINDOWS
+    HMODULE crypto = GetModuleHandle("crypto.pyd");
+    if (crypto == NULL) {
+        PyErr_SetString(PyExc_RuntimeError, "Unable to get crypto module");
+        return;
+    }
+
+    new_x509name = GetProcAddress(crypto, "crypto_X509Name_New");
+#   else
+    new_x509name = crypto_X509Name_New;
+#   endif
 #endif
 
     SSL_library_init();
diff --git a/OpenSSL/ssl/ssl.h b/OpenSSL/ssl/ssl.h
index ba7ba8b..15ae959 100644
--- a/OpenSSL/ssl/ssl.h
+++ b/OpenSSL/ssl/ssl.h
@@ -46,6 +46,8 @@
 extern ssl_Context_New_RETURN    ssl_Context_New    ssl_Context_New_PROTO;
 extern ssl_Connection_New_RETURN ssl_Connection_New ssl_Connection_New_PROTO;
 
+crypto_X509NameObj* (*new_x509name)(X509_NAME*, int);
+
 #else /* SSL_MODULE */
 
 extern void **ssl_API;