Various changes to stop VC++ choking under Win32.
diff --git a/CHANGES b/CHANGES
index fc8e884..fa03ac0 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,12 @@
 
  Changes between 0.9.3a and 0.9.4
 
+  *) Various changes to make Win32 compile work: 
+     1. Casts to avoid "loss of data" warnings in p5_crpt2.c
+     2. Change unsigned int to int in b_dump.c to avoid "signed/unsigned
+        comparison" warnings.
+     3. Add sk_<TYPE>_sort to DEF file generator and do make update.
+
   *) Add a debugging option to PKCS#5 v2 key generation function: when
      you #define DEBUG_PKCS5V2 passwords, salts, iteration counts and
      derived keys are printed to stderr.
diff --git a/crypto/bio/b_dump.c b/crypto/bio/b_dump.c
index b1562cf..a7cd828 100644
--- a/crypto/bio/b_dump.c
+++ b/crypto/bio/b_dump.c
@@ -71,7 +71,7 @@
 {
   int ret=0;
   char buf[160+1],tmp[20];
-  unsigned int i,j,rows,trunc;
+  int i,j,rows,trunc;
   unsigned char ch;
 
   trunc=0;
diff --git a/crypto/evp/p5_crpt2.c b/crypto/evp/p5_crpt2.c
index 2de3a2c..65c4afa 100644
--- a/crypto/evp/p5_crpt2.c
+++ b/crypto/evp/p5_crpt2.c
@@ -92,10 +92,10 @@
 		/* We are unlikely to ever use more than 256 blocks (5120 bits!)
 		 * but just in case...
 		 */
-		itmp[0] = (i >> 24) & 0xff;
-		itmp[1] = (i >> 16) & 0xff;
-		itmp[2] = (i >> 8) & 0xff;
-		itmp[3] = i & 0xff;
+		itmp[0] = (unsigned char)((i >> 24) & 0xff);
+		itmp[1] = (unsigned char)((i >> 16) & 0xff);
+		itmp[2] = (unsigned char)((i >> 8) & 0xff);
+		itmp[3] = (unsigned char)(i & 0xff);
 		HMAC_Init(&hctx, pass, passlen, EVP_sha1());
 		HMAC_Update(&hctx, salt, saltlen);
 		HMAC_Update(&hctx, itmp, 4);
diff --git a/util/libeay.num b/util/libeay.num
index f9ea4e8..e08ad4e 100755
--- a/util/libeay.num
+++ b/util/libeay.num
@@ -1821,3 +1821,23 @@
 RSA_set_method                          1846
 RSA_get_method                          1847
 RSA_get_default_method                  1848
+sk_CONF_VALUE_sort                      1849
+sk_X509_REVOKED_sort                    1850
+sk_X509_ATTRIBUTE_sort                  1851
+sk_X509_INFO_sort                       1852
+sk_POLICYINFO_sort                      1853
+sk_GENERAL_NAME_sort                    1854
+sk_X509_sort                            1855
+sk_X509_NAME_sort                       1856
+sk_ASN1_TYPE_sort                       1857
+sk_X509_ALGOR_sort                      1858
+sk_PKCS7_RECIP_INFO_sort                1859
+sk_X509_NAME_ENTRY_sort                 1860
+sk_X509_EXTENSION_sort                  1861
+sk_SXNETID_sort                         1862
+sk_ASN1_OBJECT_sort                     1863
+sk_PKCS7_SIGNER_INFO_sort               1864
+sk_X509_LOOKUP_sort                     1865
+sk_POLICYQUALINFO_sort                  1866
+sk_X509_CRL_sort                        1867
+sk_DIST_POINT_sort                      1868
diff --git a/util/mkdef.pl b/util/mkdef.pl
index c2a8d9a..80384af 100755
--- a/util/mkdef.pl
+++ b/util/mkdef.pl
@@ -237,6 +237,7 @@
 				$funcs{"sk_${1}_pop_free"} = 1;
 				$funcs{"sk_${1}_shift"} = 1;
 				$funcs{"sk_${1}_pop"} = 1;
+				$funcs{"sk_${1}_sort"} = 1;
 			} elsif ($safe_stack_def &&
 				/^\s*DECLARE_ASN1_SET_OF\s*\(\s*(\w*)\s*\)/) {
 				$funcs{"d2i_ASN1_SET_OF_${1}"} = 1;
diff --git a/util/ssleay.num b/util/ssleay.num
index b7a85b3..d86c140 100755
--- a/util/ssleay.num
+++ b/util/ssleay.num
@@ -212,3 +212,5 @@
 sk_SSL_COMP_unshift                     230
 SSL_CTX_set_session_id_context          231
 SSL_CTX_set_cert_verify_callback        232
+sk_SSL_COMP_sort                        233
+sk_SSL_CIPHER_sort                      234