diff --git a/OpenSSL/SSL.py b/OpenSSL/SSL.py
index 81ec2e2..f21ad9d 100644
--- a/OpenSSL/SSL.py
+++ b/OpenSSL/SSL.py
@@ -699,7 +699,7 @@
         """
         @wraps(callback)
         def wrapper(ssl, where, return_code):
-            callback(self, where, return_code)
+            callback(Connection._reverse_mapping[ssl], where, return_code)
         self._info_callback = _ffi.callback(
             "void (*)(const SSL *, int, int)", wrapper)
         _lib.SSL_CTX_set_info_callback(self._context, self._info_callback)
diff --git a/OpenSSL/test/test_ssl.py b/OpenSSL/test/test_ssl.py
index e3518c5..712009b 100644
--- a/OpenSSL/test/test_ssl.py
+++ b/OpenSSL/test/test_ssl.py
@@ -700,15 +700,19 @@
         serverSSL = Connection(context, server)
         serverSSL.set_accept_state()
 
-        while not called:
-            for ssl in clientSSL, serverSSL:
-                try:
-                    ssl.do_handshake()
-                except WantReadError:
-                    pass
+        handshake(clientSSL, serverSSL)
 
-        # Kind of lame.  Just make sure it got called somehow.
-        self.assertTrue(called)
+        # The callback must always be called with the connection it is a
+        # callback for as the first argument.  It would probably be better to
+        # split this into separate tests for client and server side info
+        # callbacks.  It would also be good to at least assert *something*
+        # about `where` and `ret`.
+        notConnections = [
+            conn for (conn, where, ret) in called
+            if not isinstance(conn, Connection)]
+        self.assertEqual(
+            [], notConnections,
+            "Some info callback arguments were not Connection instaces.")
 
 
     def _load_verify_locations_test(self, *args):
