Rename the X509V3_*_d2i functions to X509_get_ext_d2i() etc.
This better reflects their behaviour.
diff --git a/crypto/x509/x509.h b/crypto/x509/x509.h
index 3931710..f7dcfa6 100644
--- a/crypto/x509/x509.h
+++ b/crypto/x509/x509.h
@@ -1011,6 +1011,7 @@
 X509_EXTENSION *X509_get_ext(X509 *x, int loc);
 X509_EXTENSION *X509_delete_ext(X509 *x, int loc);
 int		X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc);
+void	*	X509_get_ext_d2i(X509 *x, int nid, int *crit, int *idx);
 
 int		X509_CRL_get_ext_count(X509_CRL *x);
 int		X509_CRL_get_ext_by_NID(X509_CRL *x, int nid, int lastpos);
@@ -1019,6 +1020,7 @@
 X509_EXTENSION *X509_CRL_get_ext(X509_CRL *x, int loc);
 X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc);
 int		X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc);
+void	*	X509_CRL_get_ext_d2i(X509_CRL *x, int nid, int *crit, int *idx);
 
 int		X509_REVOKED_get_ext_count(X509_REVOKED *x);
 int		X509_REVOKED_get_ext_by_NID(X509_REVOKED *x, int nid, int lastpos);
@@ -1027,6 +1029,7 @@
 X509_EXTENSION *X509_REVOKED_get_ext(X509_REVOKED *x, int loc);
 X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc);
 int		X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc);
+void	*	X509_REVOKED_get_ext_d2i(X509_REVOKED *x, int nid, int *crit, int *idx);
 
 X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex,
 			int nid, int crit, ASN1_OCTET_STRING *data);
diff --git a/crypto/x509/x509_ext.c b/crypto/x509/x509_ext.c
index f8565a6..2955989 100644
--- a/crypto/x509/x509_ext.c
+++ b/crypto/x509/x509_ext.c
@@ -63,6 +63,8 @@
 #include <openssl/objects.h>
 #include <openssl/evp.h>
 #include <openssl/x509.h>
+#include <openssl/x509v3.h>
+
 
 int X509_CRL_get_ext_count(X509_CRL *x)
 	{
@@ -94,6 +96,11 @@
 	return(X509v3_delete_ext(x->crl->extensions,loc));
 	}
 
+void *X509_CRL_get_ext_d2i(X509_CRL *x, int nid, int *crit, int *idx)
+{
+	return X509V3_get_d2i(x->crl->extensions, nid, crit, idx);
+}
+
 int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc)
 	{
 	return(X509v3_add_ext(&(x->crl->extensions),ex,loc) != NULL);
@@ -134,6 +141,11 @@
 	return(X509v3_add_ext(&(x->cert_info->extensions),ex,loc) != NULL);
 	}
 
+void *X509_get_ext_d2i(X509 *x, int nid, int *crit, int *idx)
+{
+	return X509V3_get_d2i(x->cert_info->extensions, nid, crit, idx);
+}
+
 int X509_REVOKED_get_ext_count(X509_REVOKED *x)
 	{
 	return(X509v3_get_ext_count(x->extensions));
@@ -170,5 +182,10 @@
 	return(X509v3_add_ext(&(x->extensions),ex,loc) != NULL);
 	}
 
+void *X509_REVOKED_get_ext_d2i(X509_REVOKED *x, int nid, int *crit, int *idx)
+{
+	return X509V3_get_d2i(x->extensions, nid, crit, idx);
+}
+
 IMPLEMENT_STACK_OF(X509_EXTENSION)
 IMPLEMENT_ASN1_SET_OF(X509_EXTENSION)
diff --git a/crypto/x509v3/v3_lib.c b/crypto/x509v3/v3_lib.c
index 1ed79e4..a709d6d 100644
--- a/crypto/x509v3/v3_lib.c
+++ b/crypto/x509v3/v3_lib.c
@@ -219,20 +219,3 @@
 	if(crit) *crit = -1;
 	return NULL;
 }
-
-/* As above but for a passed certificate */
-
-void *X509V3_X509_get_d2i(X509 *x, int nid, int *crit, int *idx)
-{
-	return X509V3_get_d2i(x->cert_info->extensions, nid, crit, idx);
-}
-
-void *X509V3_CRL_get_d2i(X509_CRL *x, int nid, int *crit, int *idx)
-{
-	return X509V3_get_d2i(x->crl->extensions, nid, crit, idx);
-}
-
-void *X509V3_REVOKED_get_d2i(X509_REVOKED *x, int nid, int *crit, int *idx)
-{
-	return X509V3_get_d2i(x->extensions, nid, crit, idx);
-}
diff --git a/crypto/x509v3/v3_purp.c b/crypto/x509v3/v3_purp.c
index e03f976..ceaa262 100644
--- a/crypto/x509v3/v3_purp.c
+++ b/crypto/x509v3/v3_purp.c
@@ -263,7 +263,7 @@
 	/* V1 should mean no extensions ... */
 	if(!X509_get_version(x)) x->ex_flags |= EXFLAG_V1;
 	/* Handle basic constraints */
-	if((bs=X509V3_X509_get_d2i(x, NID_basic_constraints, NULL, NULL))) {
+	if((bs=X509_get_ext_d2i(x, NID_basic_constraints, NULL, NULL))) {
 		if(bs->ca) x->ex_flags |= EXFLAG_CA;
 		if(bs->pathlen) {
 			if((bs->pathlen->type == V_ASN1_NEG_INTEGER)
@@ -276,7 +276,7 @@
 		x->ex_flags |= EXFLAG_BCONS;
 	}
 	/* Handle key usage */
-	if((usage=X509V3_X509_get_d2i(x, NID_key_usage, NULL, NULL))) {
+	if((usage=X509_get_ext_d2i(x, NID_key_usage, NULL, NULL))) {
 		if(usage->length > 0) {
 			x->ex_kusage = usage->data[0];
 			if(usage->length > 1) 
@@ -286,7 +286,7 @@
 		ASN1_BIT_STRING_free(usage);
 	}
 	x->ex_xkusage = 0;
-	if((extusage=X509V3_X509_get_d2i(x, NID_ext_key_usage, NULL, NULL))) {
+	if((extusage=X509_get_ext_d2i(x, NID_ext_key_usage, NULL, NULL))) {
 		x->ex_flags |= EXFLAG_XKUSAGE;
 		for(i = 0; i < sk_ASN1_OBJECT_num(extusage); i++) {
 			switch(OBJ_obj2nid(sk_ASN1_OBJECT_value(extusage,i))) {
@@ -314,7 +314,7 @@
 		sk_ASN1_OBJECT_pop_free(extusage, ASN1_OBJECT_free);
 	}
 
-	if((ns=X509V3_X509_get_d2i(x, NID_netscape_cert_type, NULL, NULL))) {
+	if((ns=X509_get_ext_d2i(x, NID_netscape_cert_type, NULL, NULL))) {
 		if(ns->length > 0) x->ex_nscert = ns->data[0];
 		else x->ex_nscert = 0;
 		x->ex_flags |= EXFLAG_NSCERT;
diff --git a/crypto/x509v3/x509v3.h b/crypto/x509v3/x509v3.h
index 6473b58..83998d0 100644
--- a/crypto/x509v3/x509v3.h
+++ b/crypto/x509v3/x509v3.h
@@ -515,9 +515,6 @@
 STACK_OF(CONF_VALUE) *X509V3_parse_list(char *line);
 void *X509V3_EXT_d2i(X509_EXTENSION *ext);
 void *X509V3_get_d2i(STACK_OF(X509_EXTENSION) *x, int nid, int *crit, int *idx);
-void *X509V3_X509_get_d2i(X509 *x, int nid, int *crit, int *idx);
-void *X509V3_CRL_get_d2i(X509_CRL *x, int nid, int *crit, int *idx);
-void *X509V3_REVOKED_get_d2i(X509_REVOKED *x, int nid, int *crit, int *idx);
 
 X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc);
 
diff --git a/util/libeay.num b/util/libeay.num
index 580077f..329c1bf 100755
--- a/util/libeay.num
+++ b/util/libeay.num
@@ -1881,7 +1881,7 @@
 BIO_ctrl_reset_read_request             1906
 DISPLAYTEXT_new                         1907
 ASN1_GENERALIZEDTIME_free               1908
-X509V3_REVOKED_get_d2i                  1909
+X509_REVOKED_get_ext_d2i                1909
 X509_set_ex_data                        1910
 X509_reject_set_bit_asc                 1911
 X509_NAME_add_entry_by_txt              1912
@@ -1930,7 +1930,7 @@
 ASN1_OCTET_STRING_cmp                   1955
 sk_ACCESS_DESCRIPTION_value             1956
 ASN1_BIT_STRING_new                     1957
-X509V3_X509_get_d2i                     1958
+X509_get_ext_d2i                        1958
 PEM_read_bio_X509_AUX                   1959
 ASN1_STRING_set_default_mask_asc        1960
 PEM_write_bio_RSA_PUBKEY                1961
@@ -1981,7 +1981,7 @@
 sk_ACCESS_DESCRIPTION_zero              2006
 X509_TRUST_cleanup                      2007
 X509_NAME_add_entry_by_OBJ              2008
-X509V3_CRL_get_d2i                      2009
+X509_CRL_get_ext_d2i                    2009
 sk_X509_TRUST_set                       2010
 X509_PURPOSE_iget_name                  2011
 PEM_read_PUBKEY                         2012