crypto_PKey_Check this time
diff --git a/src/crypto/pkcs12.c b/src/crypto/pkcs12.c
index 45bf302..77a1829 100644
--- a/src/crypto/pkcs12.c
+++ b/src/crypto/pkcs12.c
@@ -88,8 +88,7 @@
 @return: None\n\
 ";
 static PyObject *
-crypto_PKCS12_set_privatekey(crypto_PKCS12Obj *self, PyObject *args, PyObject *keywds)
-{
+crypto_PKCS12_set_privatekey(crypto_PKCS12Obj *self, PyObject *args, PyObject *keywds) {
     PyObject *pkey = NULL;
     static char *kwlist[] = {"pkey", NULL};
 
@@ -97,7 +96,7 @@
         kwlist, &pkey))
         return NULL;
 
-    if (pkey != Py_None && ! PyObject_IsInstance(pkey, (PyObject *) &crypto_PKey_Type)) {
+    if (pkey != Py_None && ! crypto_PKey_Check(pkey)) {
         PyErr_SetString(PyExc_TypeError, "pkey must be type X509 or None");
         return NULL;
     }
@@ -130,7 +129,7 @@
 Replace or set the CA certificates withing the PKCS12 object.\n\
 \n\
 @param cacerts: The new CA certificates.\n\
-@type cacerts: Sequence of L{X509} or L{NoneType}\n\
+@type cacerts: Iterable of L{X509} or L{NoneType}\n\
 @return: None\n\
 ";
 static PyObject *