diff --git a/lib/transfer.c b/lib/transfer.c
index 92b56600ceb6df57fdcc5833af2c78898622edac..1c4e74c6f4ec30e747e038e2c0d8e91ff24ed303 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -109,7 +109,7 @@
 CURLcode static
 _Transfer(struct connectdata *c_conn)
 {
-  size_t nread;                 /* number of bytes read */
+  ssize_t nread;                /* number of bytes read */
   int bytecount = 0;            /* total number of bytes read */
   int writebytecount = 0;       /* number of bytes written */
   long contentlength=0;         /* size of incoming data */