diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -314,6 +314,7 @@
         ,("freetype",   "freetype2")
         ,("glib",       "glib2")
         ,("wmflite",    "libwmf")
+        ,("il",    "devil")
 
         ,("jpeg",       "libjpeg")
         ,("ldap",       "libldap")
@@ -325,6 +326,7 @@
         ,("exif",       "libexif")
         ,("tiff",       "libtiff")
         ,("sndfile",    "libsndfile")
+        ,("gcrypt",     "libgcrypt")
         ,("fftw3",      "fftw")
 
         ,("pq",         "postgresql")
@@ -335,6 +337,8 @@
         ,("z",          "zlib")
         ,("curses",     "ncurses")
         ,("xslt",       "libxslt")
+        ,("csound64",   "csound5")
+        ,("uuid",       "e2fsprogs")
 
         ,("pthread",     "")
         ,("m",          "")
@@ -344,8 +348,12 @@
 shouldNotBeLibraries :: [String]
 shouldNotBeLibraries =
     ["xmonad"
+    ,"yi"
+    ,"haddock"
     ,"hscolour"
+    ,"line2pdf"
     ,"distract"
+    ,"derive"
     ,"Hedi"
     ,"conjure"
     ,"clevercss"
@@ -448,25 +456,21 @@
 
     -- All Hackage packages depend on GHC at build time
     -- All Haskell libraries are prefixed with "haskell-"
-    , arch_makedepends = (arch_makedepends emptyPkgBuild)
-                            `mappend`
-                         -- Haskell libraries
-                         -- TODO: use a real package spec to compute these names
-                         -- based on what is in Arch.
-                         ArchList
-                             [ ArchDep (Dependency (
-                                   if d /= "gtk2hs" then "haskell" <-> map toLower d else d) v)
-                             | Dependency d v <- gtk2hsIfy (buildDepends cabal) ]
-                            `mappend`
-                         anyClibraries
+    , arch_makedepends = my_makedepends
 
-    , arch_depends = 
-        if not (isLibrary)
-                    then
-                        ArchList [ArchDep (Dependency "gmp" AnyVersion)]
-                                        `mappend`
-                                        anyClibraries
-                    else ArchList []
+    , arch_depends =
+        (if not (isLibrary)
+            then
+                ArchList [ArchDep (Dependency "gmp" AnyVersion)]
+                                `mappend`
+                                anyClibraries
+            else ArchList [])
+        `mappend`
+            -- libraries have 'register-time' dependencies on
+            -- their dependent Haskell libraries.
+            --
+           (if hasLibrary then my_makedepends
+                          else ArchList [])
 
     -- need the dependencies of all flags that are on by default, for all libraries and executables
 
@@ -512,6 +516,20 @@
     name     = pkgName (package cabal)
     vers     = pkgVersion (package cabal)
 
+    -- build time dependencies
+    my_makedepends =
+     (arch_makedepends emptyPkgBuild)
+        `mappend`
+     -- Haskell libraries
+     -- TODO: use a real package spec to compute these names
+     -- based on what is in Arch.
+     ArchList
+         [ ArchDep (Dependency (
+               if d /= "gtk2hs" then "haskell" <-> map toLower d else d) v)
+         | Dependency d v <- gtk2hsIfy (buildDepends cabal) ]
+        `mappend`
+     anyClibraries
+
     hasLibrary = isJust (library cabal)
     isLibrary  = isJust (library cabal) -- && null (executables cabal)
                     && map toLower name `notElem` shouldNotBeLibraries
@@ -662,7 +680,13 @@
     , arch_arch        = ArchList [Arch_X86, Arch_X86_64]
     , arch_url         = homepage e
     , arch_license     = ArchList [license e]
-    , arch_makedepends = ArchList [(ArchDep (Dependency "ghc" AnyVersion))]
+
+    -- everything depends on ghc and Cabal 1.4.x
+    , arch_makedepends = ArchList
+        [(ArchDep (Dependency "ghc"    AnyVersion))
+        ,(ArchDep (Dependency "Cabal" (ThisVersion (Version  [1,4,0,1] []))))
+        ]
+
         -- makedepends=('ghc>=6.6') ?
     , arch_depends     = ArchList []
     , arch_source      = ArchList []
diff --git a/cabal2arch.cabal b/cabal2arch.cabal
--- a/cabal2arch.cabal
+++ b/cabal2arch.cabal
@@ -1,5 +1,5 @@
 name:               cabal2arch
-version:            0.3.7
+version:            0.3.8
 homepage:           http://code.haskell.org/~dons/code/cabal2arch
 synopsis:           Create Arch Linux packages from Cabal packages
 description:        Create Arch Linux packages from Cabal packages
