diff --git a/src/kadmin.c b/src/kadmin.c
index c9e78ced13d6a1a4a9cf6145c87c1bd7f201707c..4ceffda7a63bcde43a2ece3cce3d8ce2f231ae39 100644
--- a/src/kadmin.c
+++ b/src/kadmin.c
@@ -309,14 +309,6 @@ static PyKAdminObject *_kadmin_init_with_ccache(PyObject *self, PyObject *args)
                 db_args, 
                 &kadmin->server_handle);
 
-    if (retval != KADM5_OK) { 
-
-        Py_XDECREF(kadmin);
-        kadmin = NULL;
-
-        PyKAdminError_raise_error(retval, "kadm5_init_with_creds");
-    }
-
 
 cleanup:
     
@@ -328,6 +320,14 @@ cleanup:
     krb5_free_principal(kadmin->context, princ);
     krb5_cc_close(kadmin->context, cc);
 
+    if (retval != KADM5_OK) {
+
+        Py_XDECREF(kadmin);
+        kadmin = NULL;
+
+        PyKAdminError_raise_error(retval, "kadm5_init_with_creds");
+    }
+
     if (params)
         free(params);