diff --git a/configure.ac b/configure.ac
index 54b8dff08bb2b4f2df9a637376c91eeb6a118798..e963fbc9f5d0e17de9e2391ee15f2b059444f2c0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -183,10 +183,10 @@ NEED_PROG(perl, perl)
 NEED_PROG(sed, sed)
 NEED_PROG(tar, tar)
 NEED_PROG(bzip2, bzip2)
+NEED_PROG(gzip, gzip)
 NEED_PROG(xz, xz)
 AC_PATH_PROG(dot, dot)
 AC_PATH_PROG(dblatex, dblatex)
-AC_PATH_PROG(gzip, gzip)
 AC_PATH_PROG(pv, pv, pv)
 
 
diff --git a/corepkgs/config.nix.in b/corepkgs/config.nix.in
index 6f6ec6de1a306a2f2521732bbf9e0f525450a4f6..3819dc96c1640cb03a39201a7c91bbd23690b144 100644
--- a/corepkgs/config.nix.in
+++ b/corepkgs/config.nix.in
@@ -7,6 +7,7 @@ in {
   shell = "@shell@";
   coreutils = "@coreutils@";
   bzip2 = "@bzip2@";
+  gzip = "@gzip@";
   xz = "@xz@";
   tar = "@tar@";
   tarFlags = "@tarFlags@";
diff --git a/corepkgs/unpack-channel.nix b/corepkgs/unpack-channel.nix
index 5c2a61e669460e51c70493262cd4fac829f1a025..b309fc41ec01f71aec95e3f865860f2eb873b3c2 100644
--- a/corepkgs/unpack-channel.nix
+++ b/corepkgs/unpack-channel.nix
@@ -6,9 +6,12 @@ let
     ''
       mkdir $out
       cd $out
-      pat="\.xz\$"
-      if [[ "$src" =~ $pat ]]; then
+      xzpat="\.xz\$"
+      gzpat="\.gz\$"
+      if [[ "$src" =~ $xzpat ]]; then
         ${xz} -d < $src | ${tar} xf - ${tarFlags}
+      else if [[ "$src" =~ $gzpat ]]; then
+        ${gzip} -d < $src | ${tar} xf - ${tarFlags}
       else
         ${bzip2} -d < $src | ${tar} xf - ${tarFlags}
       fi
diff --git a/nix.spec.in b/nix.spec.in
index a6a0b370da339ee7bf2a5910f6156a520d654f4f..d09140562672f92db8bc43376729ac0e379940bd 100644
--- a/nix.spec.in
+++ b/nix.spec.in
@@ -22,6 +22,7 @@ Requires: /usr/bin/perl
 Requires: curl
 Requires: perl-DBD-SQLite
 Requires: bzip2
+Requires: gzip
 Requires: xz
 BuildRequires: bzip2-devel
 BuildRequires: sqlite-devel