--- a/src/zfile.c	2012-10-13 14:53:16.000000000 +0200
+++ b/src/zfile.c	2012-11-03 18:47:40.000000000 +0100
@@ -198,10 +198,10 @@
     do {
         char buf[256];
 
-        len = gzread(fdsrc, (void *)buf, 256);
+        len = gzread((gzFile)fdsrc, (void *)buf, 256);
         if (len > 0) {
             if (fwrite((void *)buf, 1, (size_t)len, fddest) < len) {
-                gzclose(fdsrc);
+                gzclose((gzFile)fdsrc);
                 fclose(fddest);
                 ioutil_remove(tmp_name);
                 lib_free(tmp_name);
@@ -210,7 +210,7 @@
         }
     } while (len > 0);
 
-    gzclose(fdsrc);
+    gzclose((gzFile)fdsrc);
     fclose(fddest);
 
     return tmp_name;
@@ -779,10 +779,10 @@
         char buf[256];
         len = fread((void *)buf, 256, 1, fdsrc);
         if (len > 0)
-            gzwrite(fddest, (void *)buf, (unsigned int)len);
+            gzwrite((gzFile)fddest, (void *)buf, (unsigned int)len);
     } while (len > 0);
 
-    gzclose(fddest);
+    gzclose((gzFile)fddest);
     fclose(fdsrc);
 
     archdep_file_set_gzip(dest);