diff --git a/Setup.lhs b/Setup.lhs
--- a/Setup.lhs
+++ b/Setup.lhs
@@ -1,3 +1,11 @@
 #!/usr/bin/env runhaskell
+
+> module Main ( main ) where
+>
 > import Distribution.Simple
-> main = defaultMain
+> import Distribution.Simple.Program
+>
+> main :: IO ()
+> main = defaultMainWithHooks simpleUserHooks
+>        { hookedPrograms = [ simpleProgram "zip" ]
+>        }
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,3 +1,7 @@
+zip-archive 0.2.3.7
+
+  * Declared test suite's dependency on 'zip' using custom Setup.lhs (#21,#22).
+
 zip-archive 0.2.3.6
 
   * Removed hard-coded path to zip in test suite (#21).
diff --git a/zip-archive.cabal b/zip-archive.cabal
--- a/zip-archive.cabal
+++ b/zip-archive.cabal
@@ -1,7 +1,7 @@
 Name:                zip-archive
-Version:             0.2.3.6
+Version:             0.2.3.7
 Cabal-Version:       >= 1.10
-Build-type:          Simple
+Build-type:          Custom
 Synopsis:            Library for creating and modifying zip archives.
 Description:         The zip-archive library provides functions for creating, modifying,
                      and extracting files from zip archives.
@@ -63,3 +63,4 @@
                   HUnit, zip-archive
   Default-Language:  Haskell98
   Ghc-Options:    -Wall
+  Build-Tools:    zip
