diff --git a/src/libstore/download.cc b/src/libstore/download.cc
index 0b768b59178313e52bc96fc108a0d53acd2f3c44..48d9a42e590b89c778214fda176a6d7644b80fcc 100644
--- a/src/libstore/download.cc
+++ b/src/libstore/download.cc
@@ -213,7 +213,7 @@ struct CurlDownloader : public Downloader
         }
 
         size_t readOffset = 0;
-        int readCallback(char *buffer, size_t size, size_t nitems)
+        size_t readCallback(char *buffer, size_t size, size_t nitems)
         {
             if (readOffset == request.data->length())
                 return 0;
@@ -224,7 +224,7 @@ struct CurlDownloader : public Downloader
             return count;
         }
 
-        static int readCallbackWrapper(char *buffer, size_t size, size_t nitems, void * userp)
+        static size_t readCallbackWrapper(char *buffer, size_t size, size_t nitems, void * userp)
         {
             return ((DownloadItem *) userp)->readCallback(buffer, size, nitems);
         }