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()
