Fix for BIO pairs.
diff --git a/crypto/bio/bio.h b/crypto/bio/bio.h
index 8e5b7b5..405e769 100644
--- a/crypto/bio/bio.h
+++ b/crypto/bio/bio.h
@@ -512,6 +512,14 @@
 int BIO_dump(BIO *b,const char *bytes,int len);
 
 struct hostent *BIO_gethostbyname(const char *name);
+/* We might want a thread-safe interface too:
+ * struct hostent *BIO_gethostbyname_r(const char *name,
+ *     struct hostent *result, void *buffer, size_t buflen);
+ * or something similar (caller allocates a struct hostent,
+ * pointed to by "result", and additional buffer space for the various
+ * substructures; if the buffer does not suffice, NULL is returned
+ * and an appropriate error code is set).
+ */
 int BIO_sock_error(int sock);
 int BIO_socket_ioctl(int fd, long type, unsigned long *arg);
 int BIO_socket_nbio(int fd,int mode);
diff --git a/crypto/bio/bss_bio.c b/crypto/bio/bss_bio.c
index 84b91b5..0ad55e0 100644
--- a/crypto/bio/bss_bio.c
+++ b/crypto/bio/bss_bio.c
@@ -198,7 +198,7 @@
 		return 0;
 		}
 	
-	if (b1->buf != NULL)
+	if (b1->buf == NULL)
 		{
 		b1->buf = Malloc(b1->size);
 		if (b1->buf == NULL)
@@ -210,7 +210,7 @@
 		b1->offset = 0;
 		}
 	
-	if (b2->buf != NULL)
+	if (b2->buf == NULL)
 		{
 		b2->buf = Malloc(b2->size);
 		if (b2->buf == NULL)
diff --git a/util/libeay.num b/util/libeay.num
index f3aaa2d..0e6d261 100755
--- a/util/libeay.num
+++ b/util/libeay.num
@@ -1765,3 +1765,5 @@
 i2d_PKCS8_bio                           1790
 i2d_PKCS8_PRIV_KEY_INFO_fp              1791
 i2d_PKCS8_PRIV_KEY_INFO_bio             1792
+BIO_s_bio                               1793
+PKCS5_pbe2_set                          1794