diff --git a/codex.cabal b/codex.cabal
--- a/codex.cabal
+++ b/codex.cabal
@@ -1,5 +1,5 @@
 name:                codex
-version:             0.3.0.8
+version:             0.3.0.10
 synopsis:            A ctags file generator for cabal project dependencies.
 description:
   This tool download and cache the source code of packages in your local hackage,
@@ -76,7 +76,7 @@
     , network             >= 2.6        && < 2.7
     , wreq
     , yaml                
-    , codex               == 0.3.0.8
+    , codex               == 0.3.0.10
 
 source-repository head
   type:     git
diff --git a/codex/Main.hs b/codex/Main.hs
--- a/codex/Main.hs
+++ b/codex/Main.hs
@@ -64,7 +64,7 @@
 
 update :: Codex -> Bool -> IO ()
 update cx force = do
-  (project, dependencies, workspaceProjects') <- resolveCurrentProjectDependencies
+  (project, dependencies, workspaceProjects') <- resolveCurrentProjectDependencies $ hackagePath cx </> "00-index.tar"
   projectHash <- computeCurrentProjectHash cx
 
   shouldUpdate <-
diff --git a/src/Codex/Project.hs b/src/Codex/Project.hs
--- a/src/Codex/Project.hs
+++ b/src/Codex/Project.hs
@@ -11,7 +11,7 @@
 import Data.Function
 import Data.Maybe
 import Distribution.InstalledPackageInfo
-import Distribution.Hackage.DB (Hackage, readHackage)
+import Distribution.Hackage.DB (Hackage, readHackage')
 import Distribution.Package
 import Distribution.PackageDescription
 import Distribution.PackageDescription.Parse
@@ -52,16 +52,16 @@
   files     <- filterM (doesFileExist . (</>) root) contents
   traverse (readPackageDescription silent) $ fmap (\x -> root </> x) $ List.find (List.isSuffixOf ".cabal") files
 
-resolveCurrentProjectDependencies :: IO ProjectDependencies
-resolveCurrentProjectDependencies = do
+resolveCurrentProjectDependencies :: FilePath -> IO ProjectDependencies
+resolveCurrentProjectDependencies hackagePath = do
   ws <- getWorkspace ".."
-  resolveProjectDependencies ws "."
+  resolveProjectDependencies ws hackagePath "."
 
 -- TODO Optimize
-resolveProjectDependencies :: Workspace -> FilePath -> IO ProjectDependencies
-resolveProjectDependencies ws root = do
+resolveProjectDependencies :: Workspace -> FilePath -> FilePath -> IO ProjectDependencies
+resolveProjectDependencies ws hackagePath root = do
   pd <- maybe (error "No cabal file found.") id <$> findPackageDescription root
-  xs <- resolvePackageDependencies root pd
+  xs <- resolvePackageDependencies hackagePath root pd
   ys <- resolveSandboxDependencies root
   let zs   = resolveWorkspaceDependencies ws pd
   let wsds = List.filter (shouldOverride xs) $ List.nubBy (on (==) prjId) $ concat [ys, zs]
@@ -89,8 +89,8 @@
     latest <- List.find (\x -> withinRange x versionRange) $ List.reverse $ List.sort $ Map.keys pdsByVersion
     Map.lookup latest pdsByVersion
 
-resolvePackageDependencies :: FilePath -> GenericPackageDescription -> IO [PackageIdentifier]
-resolvePackageDependencies root pd = do
+resolvePackageDependencies :: FilePath -> FilePath -> GenericPackageDescription -> IO [PackageIdentifier]
+resolvePackageDependencies hackagePath root pd = do
   xs <- either (fallback pd) return =<< resolveInstalledDependencies root
   return xs where
     fallback pd' e = do
@@ -98,7 +98,7 @@
       putStrLn "codex: *warning* falling back on dependency resolution using hackage"
       resolveWithHackage pd'
     resolveWithHackage pd' = do
-      db <- readHackage
+      db <- readHackage' hackagePath
       return $ identifier <$> resolveHackageDependencies db pd'
 
 resolveSandboxDependencies :: FilePath -> IO [WorkspaceProject]
