diff --git a/Modules/md5module.c b/Modules/md5module.c
index 591ba28..5eac97b 100644
--- a/Modules/md5module.c
+++ b/Modules/md5module.c
@@ -81,8 +81,7 @@
 static PyObject *
 md5_digest(md5object *self, PyObject *args)
 {
-
-	MD5_CTX mdContext;
+ 	MD5_CTX mdContext;
 	unsigned char aDigest[16];
 
 	if (!PyArg_NoArgs(args))
@@ -104,6 +103,41 @@
 
 
 static PyObject *
+md5_hexdigest(md5object *self, PyObject *args)
+{
+ 	MD5_CTX mdContext;
+	unsigned char digest[16];
+	unsigned char hexdigest[32];
+	int i, j;
+
+	if (!PyArg_NoArgs(args))
+		return NULL;
+
+	/* make a temporary copy, and perform the final */
+	mdContext = self->md5;
+	MD5Final(digest, &mdContext);
+
+	/* Make hex version of the digest */
+	for(i=j=0; i<16; i++) {
+		char c;
+		c = (digest[i] >> 4) & 0xf;
+		c = (c>9) ? c+'a'-10 : c + '0';
+		hexdigest[j++] = c;
+		c = (digest[i] & 0xf);
+		c = (c>9) ? c+'a'-10 : c + '0';
+		hexdigest[j++] = c;
+	}
+	return PyString_FromStringAndSize((char*)hexdigest, 32);
+}
+
+
+static char hexdigest_doc [] =
+"hexdigest() -> string\n\
+\n\
+Like digest(), but returns the digest as a string of hexadecimal digits.";
+
+
+static PyObject *
 md5_copy(md5object *self, PyObject *args)
 {
 	md5object *md5p;
@@ -126,13 +160,11 @@
 
 
 static PyMethodDef md5_methods[] = {
-	{"update",		(PyCFunction)md5_update, 
-	 METH_OLDARGS, update_doc},
-	{"digest",		(PyCFunction)md5_digest, 
-	 METH_OLDARGS, digest_doc},
-	{"copy",		(PyCFunction)md5_copy, 
-	 METH_OLDARGS, copy_doc},
-	{NULL,			NULL}		/* sentinel */
+	{"update",    (PyCFunction)md5_update,    METH_OLDARGS, update_doc},
+	{"digest",    (PyCFunction)md5_digest,    METH_OLDARGS, digest_doc},
+	{"hexdigest", (PyCFunction)md5_hexdigest, METH_OLDARGS, hexdigest_doc},
+	{"copy",      (PyCFunction)md5_copy,      METH_OLDARGS, copy_doc},
+	{NULL, NULL}			     /* sentinel */
 };
 
 static PyObject *
