diff --git a/OpenSSL/crypto/x509.c b/OpenSSL/crypto/x509.c
index 915a3b7..73f5e08 100644
--- a/OpenSSL/crypto/x509.c
+++ b/OpenSSL/crypto/x509.c
@@ -93,8 +93,6 @@
     long small_serial;
     PyObject *serial = NULL;
     PyObject *hex = NULL;
-    PyObject *format = NULL;
-    PyObject *format_args = NULL;
     ASN1_INTEGER *asn1_i = NULL;
     BIGNUM *bignum = NULL;
 
@@ -117,12 +115,8 @@
      * it.  If bignum is still NULL after this call, then the return value
      * is actually the result.  I hope.  -exarkun
      */
-    small_serial = BN_hex2bn(&bignum, PyBytes_AsString(hex));
+    small_serial = BN_hex2bn(&bignum, _PyUnicode_AsString(hex));
 
-    Py_DECREF(format_args);
-    format_args = NULL;
-    Py_DECREF(format);
-    format = NULL;
     Py_DECREF(hex);
     hex = NULL;
 
@@ -151,12 +145,6 @@
     return Py_None;
 
   err:
-    if (format_args) {
-        Py_DECREF(format_args);
-    }
-    if (format) {
-        Py_DECREF(format);
-    }
     if (hex) {
         Py_DECREF(hex);
     }
diff --git a/OpenSSL/crypto/x509name.c b/OpenSSL/crypto/x509name.c
index c288180..83f3c21 100644
--- a/OpenSSL/crypto/x509name.c
+++ b/OpenSSL/crypto/x509name.c
@@ -148,10 +148,11 @@
  *            wrong
  */
 static PyObject *
-crypto_X509Name_getattr(crypto_X509NameObj *self, char *name)
+crypto_X509Name_getattro(crypto_X509NameObj *self, PyObject *nameobj)
 {
     int nid, len;
     char *utf8string;
+    char *name = _PyUnicode_AsString(nameobj);
 
     if ((nid = OBJ_txt2nid(name)) == NID_undef) {
         /*
@@ -162,7 +163,7 @@
          * See lp#314814.
          */
         flush_error_queue();
-        return crypto_X509Name_Type.tp_getattr((PyObject*)self, name);
+        return PyObject_GenericGetAttr((PyObject*)self, nameobj);
     }
 
     len = get_name_by_nid(self->x509_name, nid, &utf8string);
@@ -461,7 +462,7 @@
     0,
     (destructor)crypto_X509Name_dealloc,
     NULL, /* print */
-    (getattrfunc)crypto_X509Name_getattr,
+    NULL, /* getattr */
     (setattrfunc)crypto_X509Name_setattr,
     NULL, /* reserved */
     (reprfunc)crypto_X509Name_repr,
@@ -471,7 +472,7 @@
     NULL, /* hash */
     NULL, /* call */
     NULL, /* str */
-    NULL, /* getattro */
+    (getattrofunc)crypto_X509Name_getattro, /* getattro */
     NULL, /* setattro */
     NULL, /* as_buffer */
     Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
