diff --git a/CHANGES b/CHANGES
index f37645a..574c319 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,12 @@
 
  Changes between 0.9.4 and 0.9.5  [xx XXX 1999]
 
+  *) New function X509_cmp(). Oddly enough there wasn't a function
+     to compare two certificates. We do this by working out the SHA1
+     hash and comparing that. X509_cmp() will be needed by the trust
+     code.
+     [Steve Henson]
+
   *) Correctly increment the reference count in the SSL_SESSION pointer 
      returned from SSL_get_session().
      [Geoff Thorpe <geoff@eu.c2.net>]
diff --git a/crypto/x509/x509.h b/crypto/x509/x509.h
index a6e61cf..d3d8030 100644
--- a/crypto/x509/x509.h
+++ b/crypto/x509/x509.h
@@ -269,6 +269,7 @@
 	unsigned long ex_kusage;
 	unsigned long ex_xkusage;
 	unsigned long ex_nscert;
+	unsigned char sha1_hash[SHA_DIGEST_LENGTH];
 	X509_CERT_AUX *aux;
 	} X509;
 
@@ -869,6 +870,7 @@
 int		X509_subject_name_cmp(X509 *a,X509 *b);
 unsigned long	X509_subject_name_hash(X509 *x);
 
+int		X509_cmp (X509 *a, X509 *b);
 int		X509_NAME_cmp (X509_NAME *a, X509_NAME *b);
 unsigned long	X509_NAME_hash(X509_NAME *x);
 
diff --git a/crypto/x509/x509_cmp.c b/crypto/x509/x509_cmp.c
index 0b0f160..62d8013 100644
--- a/crypto/x509/x509_cmp.c
+++ b/crypto/x509/x509_cmp.c
@@ -61,6 +61,7 @@
 #include <openssl/asn1.h>
 #include <openssl/objects.h>
 #include <openssl/x509.h>
+#include <openssl/x509v3.h>
 
 int X509_issuer_and_serial_cmp(X509 *a, X509 *b)
 	{
@@ -135,6 +136,16 @@
 	{
 	return(X509_NAME_hash(x->cert_info->subject));
 	}
+/* Compare two certificates: they must be identical for
+ * this to work.
+ */
+int X509_cmp(X509 *a, X509 *b)
+{
+	/* ensure hash is valid */
+	X509_check_purpose(a, -1, 0);
+	X509_check_purpose(b, -1, 0);
+	return memcmp(a->sha1_hash, b->sha1_hash, SHA_DIGEST_LENGTH);
+}
 
 int X509_NAME_cmp(X509_NAME *a, X509_NAME *b)
 	{
diff --git a/crypto/x509v3/v3_purp.c b/crypto/x509v3/v3_purp.c
index d7e561e..6ec5f95 100644
--- a/crypto/x509v3/v3_purp.c
+++ b/crypto/x509v3/v3_purp.c
@@ -103,12 +103,13 @@
 		x509v3_cache_extensions(x);
 		CRYPTO_w_unlock(CRYPTO_LOCK_X509);
 	}
+	if(id == -1) return 1;
 	idx = x509_purpose_get_idx(id);
 	if(idx == -1) return -1;
 	pt = sk_X509_PURPOSE_value(xptable, idx);
 	return pt->check_purpose(pt, x,ca);
 }
-			
+
 
 
 
@@ -199,6 +200,7 @@
 	STACK_OF(ASN1_OBJECT) *extusage;
 	int i;
 	if(x->ex_flags & EXFLAG_SET) return;
+	X509_digest(x, EVP_sha1(), x->sha1_hash, NULL);
 	/* Does subject name match issuer ? */
 	if(X509_NAME_cmp(X509_get_subject_name(x), X509_get_issuer_name(x)))
 			 x->ex_flags |= EXFLAG_SS;
