diff --git a/HasCacBDD.cabal b/HasCacBDD.cabal
--- a/HasCacBDD.cabal
+++ b/HasCacBDD.cabal
@@ -1,5 +1,5 @@
 name:                HasCacBDD
-version:             0.1.0.1
+version:             0.1.0.2
 synopsis:            Haskell bindings for CacBDD
 homepage:            https://github.com/m4lvin/HasCacBDD
 license:             GPL-2
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -13,6 +13,8 @@
   {
     preConf = makeExtLib
   , confHook = \a f -> confHook simpleUserHooks a f >>= updateExtraLibDirs
+  , postConf = disablePostConfHooks -- seems crucial to not reset extraLibDir
+  , preBuild = updateLibDirs
   , postCopy = copyExtLib
   , postClean = cleanExtLib
   }
@@ -29,26 +31,36 @@
     let myPackageDescription = localPkgDescr localBuildInfo
         lib = fromJust $ library myPackageDescription
         libBuild = libBuildInfo lib
-    dir <- getCurrentDirectory
-    print (dir ++ "/c")
+        libPref = libdir $ absoluteInstallDirs myPackageDescription localBuildInfo NoCopyDest
+    putStrLn $ "NOTE confHook: adding " ++ libPref ++ " to extraLibDirs"
     return localBuildInfo {
         localPkgDescr = myPackageDescription {
             library = Just $ lib {
                 libBuildInfo = libBuild {
-                    extraLibDirs = (dir ++ "/c") :
-                        extraLibDirs libBuild
+                    extraLibDirs = libPref : extraLibDirs libBuild
                 }
             }
         }
     }
 
+disablePostConfHooks :: Args -> ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO ()
+disablePostConfHooks args flags pd lbi = return ()
+
+updateLibDirs :: Args -> BuildFlags -> IO HookedBuildInfo
+updateLibDirs _ _ = do
+    dir <- getCurrentDirectory
+    putStrLn $ "NOTE preBuild: adding " ++ dir ++ "/c into extraLibDirs"
+    let extlibDir = dir ++ "/c"
+        bi = emptyBuildInfo { extraLibDirs = [ extlibDir ] }
+    return (Just bi, [])
+
 copyExtLib :: Args -> CopyFlags -> PackageDescription -> LocalBuildInfo -> IO ()
 copyExtLib _ flags pkg_descr lbi = do
     let libPref = libdir . absoluteInstallDirs pkg_descr lbi
                 . fromFlag . copyDest
                 $ flags
     let verbosity = fromFlag $ copyVerbosity flags
-    rawSystemExit verbosity "cp" ["c/libCacBDD.a", libPref]
+    installExecutableFile verbosity "c/libCacBDD.a" (libPref ++ "/libCacBDD.a")
 
 cleanExtLib :: Args -> CleanFlags -> PackageDescription -> () -> IO ()
 cleanExtLib _ flags _ _ =
