diff --git a/ssl/s3_srvr.c b/ssl/s3_srvr.c
index 9ac19c0..fb188e9 100644
--- a/ssl/s3_srvr.c
+++ b/ssl/s3_srvr.c
@@ -2022,7 +2022,7 @@ err:
 int ssl3_send_certificate_request(SSL *s)
 	{
 	unsigned char *p,*d;
-	int i,j,nl,off,n;
+	int i,j,nl,off,n,dl;
 	STACK_OF(X509_NAME) *sk=NULL;
 	X509_NAME *name;
 	BUF_MEM *buf;
@@ -2031,6 +2031,12 @@ int ssl3_send_certificate_request(SSL *s)
 		{
 		buf=s->init_buf;
 
+#ifdef NETSCAPE_HANG_BUG
+		dl=4;
+#else
+		dl=0;
+#endif
+
 		d=p=(unsigned char *)&(buf->data[4]);
 
 		/* get the list of acceptable cert types */
@@ -2060,7 +2066,7 @@ int ssl3_send_certificate_request(SSL *s)
 				{
 				name=sk_X509_NAME_value(sk,i);
 				j=i2d_X509_NAME(name,NULL);
-				if (!BUF_MEM_grow_clean(buf,4+n+j+2))
+				if (!BUF_MEM_grow_clean(buf,4+n+j+2+dl))
 					{
 					SSLerr(SSL_F_SSL3_SEND_CERTIFICATE_REQUEST,ERR_R_BUF_LIB);
 					goto err;
