diff --git a/src/crypto/x509name.c b/src/crypto/x509name.c
index 5827ccb..06c0153 100644
--- a/src/crypto/x509name.c
+++ b/src/crypto/x509name.c
@@ -274,6 +274,60 @@
 }
 
 
+static char crypto_X509Name_get_components_doc[] = "\n\
+Returns the split-up components of this name.\n\
+\n\
+Arguments: self - The X509 object\n\
+           args - The Python argument tuple, should be empty\n\
+Returns:   List of tuples (name, value).\n\
+";
+
+static PyObject *
+crypto_X509Name_get_components(crypto_X509NameObj *self, PyObject *args)
+{
+    int n, i;
+    X509_NAME *name = self->x509_name;
+    PyObject *list;
+
+    if (!PyArg_ParseTuple(args, ":get_components"))
+	return NULL;
+
+    n = X509_NAME_entry_count(name);
+    list = PyList_New(n);
+    for (i = 0; i < n; i++)
+    {
+	X509_NAME_ENTRY *ent;
+	ASN1_OBJECT *fname;
+	ASN1_STRING *fval;
+	int nid;
+	int l;
+	unsigned char buf[100];
+	unsigned char *str;
+	PyObject *tuple;
+
+	ent = X509_NAME_get_entry(name, i);
+
+	fname = X509_NAME_ENTRY_get_object(ent);
+	fval = X509_NAME_ENTRY_get_data(ent);
+
+	l = ASN1_STRING_length(fval);
+	str = ASN1_STRING_data(fval);
+
+	nid = OBJ_obj2nid(fname);
+
+	/* printf("fname is %s len=%d str=%s\n", OBJ_nid2sn(nid), l, str); */
+
+	tuple = PyTuple_New(2);
+	PyTuple_SetItem(tuple, 0, PyString_FromString(OBJ_nid2sn(nid)));
+	PyTuple_SetItem(tuple, 1, PyString_FromStringAndSize(str, l));
+
+	PyList_SetItem(list, i, tuple);
+    }
+
+    return list;
+}
+
+
 /*
  * Call the visitproc on all contained objects.
  *
@@ -337,6 +391,7 @@
 {
     ADD_METHOD(hash),
     ADD_METHOD(der),
+    ADD_METHOD(get_components),
     { NULL, NULL }
 };
 #undef ADD_METHOD
