another crypto_X509_Check
diff --git a/src/crypto/pkcs12.c b/src/crypto/pkcs12.c
index 939b925..45bf302 100644
--- a/src/crypto/pkcs12.c
+++ b/src/crypto/pkcs12.c
@@ -40,12 +40,11 @@
 Replace the certificate portion of the PKCS12 structure\n\
 \n\
 @param cert: The new certificate.\n\
-@type cert: L{X509}\n\
+@type cert: L{X509} or L{NoneType}\n\
 @return: None\n\
 ";
 static PyObject *
-crypto_PKCS12_set_certificate(crypto_PKCS12Obj *self, PyObject *args, PyObject *keywds)
-{
+crypto_PKCS12_set_certificate(crypto_PKCS12Obj *self, PyObject *args, PyObject *keywds) {
     PyObject *cert = NULL;
     static char *kwlist[] = {"cert", NULL};
 
@@ -53,7 +52,7 @@
         kwlist, &cert))
         return NULL;
 
-    if (cert != Py_None && ! PyObject_IsInstance(cert, (PyObject *) &crypto_X509_Type)) {
+    if (cert != Py_None && ! crypto_X509_Check(cert)) {
         PyErr_SetString(PyExc_TypeError, "cert must be type X509 or None");
         return NULL;
     }