diff --git a/lib/transfer.c b/lib/transfer.c
index 2f80909f4308793f1aabf3e2bedeea4d10bf1fff..039abf889f466e074b7f81c8f6e9d977697517a8 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -296,7 +296,7 @@ CURLcode Curl_readwrite(struct connectdata *conn,
           do {
             int hbufp_index;
             int rest_length;
-            int full_length;
+            size_t full_length;
             int writetype;
               
             /* str_start is start of line within buf */
@@ -356,8 +356,8 @@ CURLcode Curl_readwrite(struct connectdata *conn,
             if (k->hbuflen + full_length >=
                 data->state.headersize) {
               char *newbuff;
-              long newsize=CURLMAX((k->hbuflen+full_length)*3/2,
-                                   data->state.headersize*2);
+              size_t newsize=CURLMAX((k->hbuflen+full_length)*3/2,
+                                     data->state.headersize*2);
               hbufp_index = k->hbufp - data->state.headerbuff;
               newbuff = (char *)realloc(data->state.headerbuff, newsize);
               if(!newbuff) {
@@ -667,7 +667,7 @@ CURLcode Curl_readwrite(struct connectdata *conn,
             else if (checkprefix("Content-Type:", k->p)) {
               char *start;
               char *end;
-              int len;
+              size_t len;
               
               /* Find the first non-space letter */
               for(start=k->p+13;
@@ -1643,7 +1643,7 @@ CURLcode Curl_follow(struct SessionHandle *data,
   /* Location: redirect */
   char prot[16]; /* URL protocol string storage */
   char letter;   /* used for a silly sscanf */
-  int newlen;
+  size_t newlen;
   char *newest;
   
   if (data->set.maxredirs &&
@@ -1683,7 +1683,7 @@ CURLcode Curl_follow(struct SessionHandle *data,
     char *pathsep;
 
     char *useurl = newurl;
-    int urllen;
+    size_t urllen;
 
     /* we must make our own copy of the URL to play with, as it may
        point to read-only data */
diff --git a/lib/urldata.h b/lib/urldata.h
index e1fdcc288d3634221b7c9d1396a56a7c98aae2af..f50026a099056d9c0b6124ae940449a4653718eb 100644
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@ -337,7 +337,7 @@ struct Curl_transfer_keeper {
   int headerline;		/* counts header lines to better track the
                                    first one */
   char *hbufp;			/* points at *end* of header line */
-  int hbuflen;
+  size_t hbuflen;
   char *str;			/* within buf */
   char *str_start;		/* within buf */
   char *end_ptr;		/* within buf */
@@ -704,7 +704,7 @@ struct UrlState {
   long numconnects; /* size of the 'connects' array */
 
   char *headerbuff; /* allocated buffer to store headers in */
-  int headersize;   /* size of the allocation */
+  size_t headersize;   /* size of the allocation */
 
   char buffer[BUFSIZE+1]; /* download buffer */
   char uploadbuffer[BUFSIZE+1]; /* upload buffer */