diff --git a/shake-ats.cabal b/shake-ats.cabal
--- a/shake-ats.cabal
+++ b/shake-ats.cabal
@@ -1,5 +1,5 @@
 name:                shake-ats
-version:             1.3.0.2
+version:             1.3.0.3
 synopsis:            Utilities for building ATS projects with shake
 description:         Various helper functions for building [ATS](http://www.ats-lang.org/) with the [shake](http://shakebuild.com/) library
 homepage:            https://github.com/vmchale/shake-ats#readme
diff --git a/src/Development/Shake/ATS.hs b/src/Development/Shake/ATS.hs
--- a/src/Development/Shake/ATS.hs
+++ b/src/Development/Shake/ATS.hs
@@ -38,6 +38,7 @@
 import           Development.Shake.ATS.Rules
 import           Development.Shake.ATS.Type
 import           Development.Shake.FilePath
+import           Development.Shake.Version
 import           Language.ATS
 import           System.Directory                  (copyFile, createDirectoryIfMissing)
 import           System.Exit                       (ExitCode (ExitSuccess))
@@ -92,11 +93,15 @@
            -> String -- ^ GHC version
            -> Bool -- ^ Whether to use the Garbage collector
            -> [String]
-makeCFlags ss fc ghcVersion b = gcFlag' : (hsExtra <> ss) where
+makeCFlags ss fc ghcV b = gcFlag' : (hsExtra <> ss) where
     gcFlag' = bool ("-optc" <>) id noHs $ gcFlag b
-    hsExtra = bool ["--make", "-odir", ".atspkg", "-no-hs-main", "-package-db", "~/.cabal/store/ghc-" ++ ghcVersion ++ "/package.db/"] mempty noHs
+    hsExtra = bool (["--make", "-odir", ".atspkg", "-no-hs-main", "-package-db", "~/.cabal/store/ghc-" ++ ghcV ++ "/package.db/"] ++ packageDbs) mempty noHs
     noHs = null fc
+    packageDbs = (\x -> ["-package-db", x ++ "/dist-newstyle/packagedb/ghc-" ++ ghcV]) =<< libToDirs fc
 
+libToDirs :: [ForeignCabal] -> [String]
+libToDirs = fmap (takeDirectory . TL.unpack . cabalFile)
+
 -- TODO libraries should be linked against *cross-compiled* versions!!
 atsBin :: BinaryTarget -> Rules ()
 atsBin BinaryTarget{..} = do
@@ -122,12 +127,13 @@
         path <- fromMaybe "" <$> getEnv "PATH"
         let toLibs = fmap ("-l" <>)
         let libs' = ("atslib" :) $ bool libs ("gc" : libs) gc
+        ghcV <- ghcVersion -- FIXME call on ghc specified?
         command
             [EchoStderr False, AddEnv "PATSHOME" home, AddEnv "PATH" (home ++ "/bin:" ++ path), AddEnv "PATSHOMELOCS" $ patsHomeLocs 5]
             (home ++ "/bin/patscc")
             (mconcat
                 [ [src, "-atsccomp", ccommand, "-o", binTarget, "-cleanaft"]
-                , makeCFlags cFlags hsLibs "8.2.2" gc
+                , makeCFlags cFlags hsLibs ghcV gc
                 , toLibs libs'
                 ])
 
