diff --git a/Distribution/RpmDeps.hs b/Distribution/RpmDeps.hs
--- a/Distribution/RpmDeps.hs
+++ b/Distribution/RpmDeps.hs
@@ -4,9 +4,12 @@
 import Distribution.Version
 -- -> intersperse
 import Data.List
--- -> readPackageDescription
 import Distribution.PackageDescription
+import Distribution.Simple.Utils
+import Distribution.Verbosity
 -- -> PackageIdentifier
+import Distribution.PackageDescription.Parse
+-- -> readPackageDescription
 import Distribution.Simple
 -- -> maybeGetPersistBuildConfig
 import Distribution.Simple.Configure
@@ -14,39 +17,36 @@
 import Distribution.Simple.LocalBuildInfo
 -- -> GetDirectoryContents
 import Directory
+import System.FilePath
+import Distribution.Text
 
 dep_prefix = "haskell"
 
-rpmrequires :: IO [String]
-rpmrequires = do
-    buildinfo <- maybeGetPersistBuildConfig
+rpmrequires :: Maybe FilePath -> IO [String]
+rpmrequires cabalfile = do
+    buildinfo <- maybeGetPersistBuildConfig =<< findcabal cabalfile
     return $ case buildinfo of
         Nothing -> []
         Just bi -> map package2rpmdep (packageDeps bi)
 
-rpmprovides :: Maybe String -> IO [String]
+rpmprovides :: Maybe FilePath -> IO [String]
 rpmprovides cabalfile = do
-    mycabal <- readPackageDescription =<< findcabal cabalfile
-    return $ [package2rpmdep (package mycabal)]
+    mycabal <- readPackageDescription normal =<< findcabal cabalfile
+    return $ [package2rpmdep (package $ packageDescription mycabal)]
 
-rpmbuildrequires :: Maybe String -> IO [String]
+rpmbuildrequires :: Maybe FilePath -> IO [String]
 rpmbuildrequires cabalfile = do
-    mycabal <- readPackageDescription =<< findcabal cabalfile
-    return $ map dependency2rpmdep (buildDepends mycabal)
+    fcabal <- findcabal cabalfile
+    mycabal <- readPackageDescription normal fcabal
+    return $ map dependency2rpmdep (buildDepends $ packageDescription mycabal)
 
-findcabal file = do
-    cfiles <- cabalfiles `fmap` getDirectoryContents "."
-    case (file, cfiles)  of
-      (Just a, _)   -> return a
-      (Nothing, c:_) -> return c
-      _          -> error $ "Please specify one of " ++ show cfiles
-    where cabalfiles = filter (isSuffixOf ".cabal")
+findcabal file = defaultPackageDesc normal
 
 package2rpmdep :: PackageIdentifier -> String
-package2rpmdep pkg = dep_prefix ++ "(" ++ pkgName pkg ++ ") = " ++ (version2string $ pkgVersion pkg)
+package2rpmdep pkg = dep_prefix ++ "(" ++ display (pkgName pkg) ++ ") = " ++ (version2string $ pkgVersion pkg)
 
 dependency2rpmdep :: Dependency -> String
-dependency2rpmdep (Dependency name vers) = dep_prefix ++ "(" ++ name ++ ")" ++ vers2st
+dependency2rpmdep (Dependency name vers) = dep_prefix ++ "(" ++ display name ++ ")" ++ vers2st
     where 
         vers2st = case vers of
             AnyVersion                  -> ""
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,22 +1,4 @@
 #!/usr/bin/env runhugs
 
 import Distribution.Simple
-import Distribution.PackageDescription
-import Distribution.Simple.LocalBuildInfo
-import Distribution.Version
-import System.Info
-import Data.Maybe
-import System.Cmd
-
-missingHooks = defaultUserHooks {confHook = customConfHook}
-
-customConfHook descrip flags =
-    let mydescrip = case System.Info.os of
-                      "mingw32" -> descrip
-                      _ -> descrip {buildDepends = 
-                                        (Dependency "unix" AnyVersion) :
-                                        buildDepends descrip}
-    in (confHook defaultUserHooks) mydescrip flags
-
-main = defaultMainWithHooks missingHooks
-
+main = defaultMain
diff --git a/cabalrpmdeps.cabal b/cabalrpmdeps.cabal
--- a/cabalrpmdeps.cabal
+++ b/cabalrpmdeps.cabal
@@ -1,5 +1,5 @@
 Name: cabalrpmdeps
-Version: 0.0.3
+Version: 0.0.4
 License: GPL
 License-file: gpl.txt
 Category: Distribution
@@ -12,9 +12,10 @@
 Hs-Source-Dirs: .
 Exposed-Modules: Distribution.RpmDeps
 Extensions: CPP
-Build-Depends: haskell98, base, Cabal
+Build-Depends: haskell98, base, Cabal, filepath
 -- Cabal will automatically add unix here on non-Windows platforms
 GHC-Options: -O2
+build-type: Simple
 
 Executable: cabalrpmprov
 Main-Is: cabalrpmprov.hs
diff --git a/cabalrpmreq.hs b/cabalrpmreq.hs
--- a/cabalrpmreq.hs
+++ b/cabalrpmreq.hs
@@ -1,7 +1,14 @@
 module Main where
 
 import Distribution.RpmDeps
+import System
+import Monad
 
 main = do
-    req <- rpmrequires
-    putStrLn $ unlines $ req
+    args <- getArgs
+    prov <- case args of
+        [] -> rpmrequires Nothing
+        _ -> do 
+            p <- mapM (\x -> rpmrequires $ Just x) args
+            return $ foldl (++) [] p
+    putStrLn $ unlines $ prov
