diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -37,6 +37,7 @@
 
 import Data.List
 import Data.Maybe
+import qualified Data.Map as M
 import Data.Monoid
 import Data.Char
 import Debug.Trace
@@ -157,8 +158,8 @@
 -- not actuall correct, since it doesn't take any version
 -- info into account.
 --
--- Really need to use satisfyDep or friends.
--- TODO do this properly
+-- TODO this should use configDependency to find the precise
+-- versions we have available on Arch.
 --
 removeCoreFrom :: [Dependency] -> [Dependency]
 removeCoreFrom []               = []
@@ -272,6 +273,29 @@
             then die $ "directory doesn't exist: " ++ show dir
             else findPackageDesc dir
 
+findCLibs :: PackageDescription -> [String]
+findCLibs (PackageDescription { library = lib, executables = exe }) =
+    -- warn for packages not in list.
+    map canonicalise (some ++ rest)
+  where
+    some = concatMap (extraLibs.buildInfo) exe
+    rest = case lib of
+                    Nothing -> []
+                    Just l  -> extraLibs (libBuildInfo l)
+
+    canonicalise k = case M.lookup k translationTable of
+        Nothing -> trace "WARNING: this library depends on a C library we do not know the pacman name for. Check the C library names in the generated PKGBUILD File" $ k
+        Just s  -> s
+
+    -- known pacman packages for C libraries we use:
+    translationTable = M.fromList
+        [("curses",     "ncurses")
+        ,("bz2",        "bzip2")
+        ,("z",          "zlib")
+        ]
+
+
+
 ------------------------------------------------------------------------
 -- Parsing and pretty printing:
 
@@ -322,15 +346,13 @@
 -- handle mullltipackages
 -- extract C dependencies
 
---  = trace (show _cabal_condExecutables ) $
+-- = trace (show cabal) $
   =
   (emptyPkgBuild
     { arch_pkgname = archName
     , arch_pkgver  = vers
-    , arch_url     =
-        if null (homepage cabal)
-          then "http://hackage.haskell.org/cgi-bin/hackage-scripts/package/"++name
-          else homepage cabal
+    , arch_url     = "http://hackage.haskell.org/cgi-bin/hackage-scripts/package/"++name
+ --       else homepage cabal
     , arch_pkgdesc = synopsis cabal
     , arch_license =
         ArchList . return $
@@ -343,9 +365,14 @@
     -- 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 ("haskell" <-> map toLower d) v)
                              | Dependency d v <- buildDepends cabal ]
+                            `mappend`
+                         anyClibraries
 
     -- need the dependencies of all flags that are on by default, for all libraries and executables
 
@@ -394,6 +421,11 @@
     hasLibrary = isJust (library cabal)
     isLibrary  = isJust (library cabal) && null (executables cabal)
 
+    anyClibraries | null libs = ArchList []
+                  | otherwise = ArchList libs
+       where
+         libs = [ ArchDep (Dependency s AnyVersion) | s <- findCLibs cabal ]
+
 --
 -- post install, and pre-remove hooks to run, to sync up ghc-pkg
 --
@@ -573,7 +605,7 @@
         = disp r1 <+> text "&&" <+> disp r2
 -}
 
-      mydisp x = trace ("Can't handle this version format yet: " ++ show x) $ empty
+      mydisp x = trace ("WARNING: Can't handle this version format yet: " ++ show x ++ "\ncheck the dependencies by hand.")$ empty
 
   parse = undefined
 
diff --git a/cabal2arch.cabal b/cabal2arch.cabal
--- a/cabal2arch.cabal
+++ b/cabal2arch.cabal
@@ -1,5 +1,5 @@
 name:               cabal2arch
-version:            0.3.1
+version:            0.3.2
 homepage:           http://code.haskell.org/~dons/code/cabal2arch
 synopsis:           Create Arch Linux packages from Cabal packages
 description:        Create Arch Linux packages from Cabal packages
@@ -24,6 +24,7 @@
             pretty,
             process,
             directory,
+            containers,
             bytestring
     else
         build-depends:      
@@ -31,6 +32,6 @@
 
     build-depends:
             Cabal >= 1.3.11 && < 1.5,
-            pureMD5 >= 0.2.0,
+            pureMD5 >= 0.2.1,
             filepath
 
