diff --git a/hsinspect.cabal b/hsinspect.cabal
--- a/hsinspect.cabal
+++ b/hsinspect.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.2
 name:          hsinspect
-version:       0.0.9
+version:       0.0.10
 synopsis:      Inspect Haskell source files.
 license:       GPL-3.0-or-later
 license-file:  LICENSE
diff --git a/library/HsInspect/Index.hs b/library/HsInspect/Index.hs
--- a/library/HsInspect/Index.hs
+++ b/library/HsInspect/Index.hs
@@ -37,7 +37,7 @@
 import qualified Outputable as GHC
 import PackageConfig
 import qualified PackageConfig as GHC
-import Packages (explicitPackages, getPackageDetails, lookupPackage)
+import Packages (explicitPackages, lookupPackage)
 --import System.IO (hPutStrLn, stderr)
 import qualified PatSyn as GHC
 import TcEnv (tcLookup)
@@ -113,7 +113,7 @@
   let findHis dir = liftIO $ walkSuffix ".hi" dir
   his <- join <$> traverse findHis dirs
   dflags <- GHC.getSessionDynFlags
-  let srcid = sourcePackageId $ getPackageDetails dflags unitid
+  let srcid = sourcePackageId <$> lookupPackage dflags unitid
   symbols <- catMaybes <$> traverse (hiToSymbols exposed) his
   let entries = uncurry mkEntries <$> symbols
       mkEntries m things = ModuleEntries (moduleName m) (renderThings things)
@@ -180,7 +180,7 @@
 type Haddocks = [FilePath]
 
 -- Bool indicates if this is an -inplace package
-data PackageEntries = PackageEntries SourcePackageId Bool [ModuleEntries] Haddocks
+data PackageEntries = PackageEntries (Maybe SourcePackageId) Bool [ModuleEntries] Haddocks
 
 -- srcid is Nothing if it matches the re-export location
 data Exported = Exported (Maybe SourcePackageId) GHC.ModuleName
@@ -191,7 +191,7 @@
    in Exported
         (if unitid == unitid'
            then Nothing
-           else Just . sourcePackageId $ getPackageDetails dflags unitid')
+           else sourcePackageId <$> lookupPackage dflags unitid')
         (moduleName m)
 
 instance ToSexp Exported where
@@ -231,8 +231,7 @@
 instance ToSexp PackageEntries where
   toSexp (PackageEntries srcid inplace modules haddocks) =
     alist
-      [ ("srcid", toSexp . unpackFS . coerce $ srcid),
+      [ ("srcid", toSexp $ unpackFS . coerce <$> srcid),
         ("inplace", toSexp inplace),
         ("modules", toSexp modules),
         ("haddocks", toSexp haddocks) ]
-
diff --git a/library/HsInspect/Packages.hs b/library/HsInspect/Packages.hs
--- a/library/HsInspect/Packages.hs
+++ b/library/HsInspect/Packages.hs
@@ -9,7 +9,7 @@
 import Control.Monad.IO.Class (liftIO)
 import Data.Coerce
 import Data.List (delete, nub, sort, (\\))
-import Data.Maybe (catMaybes)
+import Data.Maybe (catMaybes, mapMaybe)
 import qualified Data.Set as Set
 import qualified DynFlags as GHC
 import FastString
@@ -21,7 +21,7 @@
 import HsInspect.Workarounds
 import Module (Module(..), ModuleName)
 import qualified PackageConfig as GHC
-import Packages (PackageState(..), getPackageDetails)
+import Packages (PackageState(..), lookupPackage)
 import qualified RdrName as GHC
 
 -- Similar to packunused / weeder, but more reliable (and doesn't require a
@@ -39,7 +39,7 @@
   let home = GHC.thisPackage dflags
       used = delete home . nub . sort $ pkgs
       loaded = nub . sort . explicitPackages $ GHC.pkgState dflags
-      asNames unitids = GHC.packageName . getPackageDetails dflags <$> unitids
+      asNames unitids = GHC.packageName <$> mapMaybe (lookupPackage dflags) unitids
   pure $ PkgSummary (asNames used) (asNames $ loaded \\ used)
 
 findPackage :: GHC.GhcMonad m => ModuleName -> Maybe FastString -> m (Maybe GHC.UnitId)
