- Improved compile-time compatibility with mingw32 64-bit versions
diff --git a/library/debug.c b/library/debug.c
index 5159d3a..687e194 100644
--- a/library/debug.c
+++ b/library/debug.c
@@ -96,7 +96,7 @@
         return;
 
     snprintf( str, maxlen, "%s(%04d): dumping '%s' (%d bytes)\n",
-              file, line, text, len );
+              file, line, text, (unsigned int) len );
 
     str[maxlen] = '\0';
     ssl->f_dbg( ssl->p_dbg, level, str );
@@ -111,7 +111,8 @@
             if( i > 0 )
                 ssl->f_dbg( ssl->p_dbg, level, "\n" );
 
-            snprintf( str, maxlen, "%s(%04d): %04x: ", file, line, i );
+            snprintf( str, maxlen, "%s(%04d): %04x: ", file, line,
+                      (unsigned int) i );
 
             str[maxlen] = '\0';
             ssl->f_dbg( ssl->p_dbg, level, str );
diff --git a/library/net.c b/library/net.c
index 378f798..5e811a5 100644
--- a/library/net.c
+++ b/library/net.c
@@ -40,8 +40,8 @@
 #pragma comment( lib, "ws2_32.lib" )
 #endif
 
-#define read(fd,buf,len)        recv(fd,buf,(int) len,0)
-#define write(fd,buf,len)       send(fd,buf,(int) len,0)
+#define read(fd,buf,len)        recv(fd,(char*)buf,(int) len,0)
+#define write(fd,buf,len)       send(fd,(char*)buf,(int) len,0)
 #define close(fd)               closesocket(fd)
 
 static int wsa_init_done = 0;
@@ -257,7 +257,7 @@
 int net_set_block( int fd )
 {
 #if defined(_WIN32) || defined(_WIN32_WCE)
-    long n = 0;
+    u_long n = 0;
     return( ioctlsocket( fd, FIONBIO, &n ) );
 #else
     return( fcntl( fd, F_SETFL, fcntl( fd, F_GETFL ) & ~O_NONBLOCK ) );
@@ -267,7 +267,7 @@
 int net_set_nonblock( int fd )
 {
 #if defined(_WIN32) || defined(_WIN32_WCE)
-    long n = 1;
+    u_long n = 1;
     return( ioctlsocket( fd, FIONBIO, &n ) );
 #else
     return( fcntl( fd, F_SETFL, fcntl( fd, F_GETFL ) | O_NONBLOCK ) );
diff --git a/library/x509parse.c b/library/x509parse.c
index ddbeb38..c6a9245 100644
--- a/library/x509parse.c
+++ b/library/x509parse.c
@@ -2411,7 +2411,7 @@
     SAFE_SNPRINTF();
 
     ret = snprintf( p, n, "\n%sRSA key size  : %d bits\n", prefix,
-                   crt->rsa.N.n * (int) sizeof( unsigned long ) * 8 );
+                   (int) crt->rsa.N.n * (int) sizeof( unsigned long ) * 8 );
     SAFE_SNPRINTF();
 
     return( (int) ( size - n ) );