Types should have a correct __module__ attribute.
diff --git a/test/test_crypto.py b/test/test_crypto.py
index fbe5635..3d49fd0 100644
--- a/test/test_crypto.py
+++ b/test/test_crypto.py
@@ -10,6 +10,7 @@
 from os import popen2
 from datetime import datetime, timedelta
 
+from OpenSSL import crypto
 from OpenSSL.crypto import TYPE_RSA, TYPE_DSA, Error, PKey, PKeyType
 from OpenSSL.crypto import X509, X509Type, X509Name, X509NameType
 from OpenSSL.crypto import X509Req, X509ReqType
@@ -1533,5 +1534,20 @@
 
 
 
+class ModuleTests(TestCase):
+    """
+    Tests for all objects in L{OpenSSL.crypto} module.
+    """
+
+    def test_type_module_name(self):
+        """
+        Test that all types have a sane C{__module__} attribute.
+        """
+        for name, obj in vars(crypto).items():
+            if isinstance(obj, type):
+                self.assertEqual(obj.__module__, "OpenSSL.crypto", name)
+
+
+
 if __name__ == '__main__':
     main()
diff --git a/test/test_ssl.py b/test/test_ssl.py
index 5d386a9..6698e02 100644
--- a/test/test_ssl.py
+++ b/test/test_ssl.py
@@ -10,6 +10,7 @@
 from os.path import join
 from unittest import main
 
+from OpenSSL import SSL
 from OpenSSL.crypto import TYPE_RSA, FILETYPE_PEM, PKey, dump_privatekey, load_certificate, load_privatekey
 from OpenSSL.SSL import WantReadError, Context, ContextType, Connection, ConnectionType, Error
 from OpenSSL.SSL import SSLv2_METHOD, SSLv3_METHOD, SSLv23_METHOD, TLSv1_METHOD
@@ -255,7 +256,7 @@
             context = Context(SSLv3_METHOD)
             context.set_default_verify_paths()
             context.set_verify(
-                VERIFY_PEER, 
+                VERIFY_PEER,
                 lambda conn, cert, errno, depth, preverify_ok: preverify_ok)
 
             client = socket()
@@ -511,8 +512,8 @@
             established = True  # assume the best
             for ssl in client_conn, server_conn:
                 try:
-                    # Generally a recv() or send() could also work instead 
-                    # of do_handshake(), and we would stop on the first 
+                    # Generally a recv() or send() could also work instead
+                    # of do_handshake(), and we would stop on the first
                     # non-exception.
                     ssl.do_handshake()
                 except WantReadError:
@@ -584,5 +585,20 @@
 
 
 
+class ModuleTests(TestCase):
+    """
+    Tests for all objects in L{OpenSSL.crypto} module.
+    """
+
+    def test_type_module_name(self):
+        """
+        Test that all types have a sane C{__module__} attribute.
+        """
+        for name, obj in vars(SSL).items():
+            if isinstance(obj, type):
+                self.assertEqual(obj.__module__, "OpenSSL.SSL", name)
+
+
+
 if __name__ == '__main__':
     main()