diff --git a/utils/dump-decls/Main.hs b/utils/dump-decls/Main.hs
index 3fc5c851c4941dc089bcd0116a6365ebb92268e8..7083558cdebbf3e99f9b22c7b4904d0dc11713c5 100644
--- a/utils/dump-decls/Main.hs
+++ b/utils/dump-decls/Main.hs
@@ -6,7 +6,8 @@ import GHC.Core.Class (classMinimalDef)
 import GHC.Core.TyCo.FVs (tyConsOfType)
 import GHC.Driver.Ppr (showSDocForUser)
 import GHC.Unit.State (lookupUnitId, lookupPackageName)
-import GHC.Unit.Info (UnitInfo, unitExposedModules, PackageName(..))
+import GHC.Unit.Info (UnitInfo, unitExposedModules, unitId, PackageName(..))
+import GHC.Unit.Types (UnitId)
 import GHC.Data.FastString (fsLit)
 import GHC.Driver.Env (hsc_units, hscEPS)
 import GHC.Utils.Outputable
@@ -163,14 +164,14 @@ reportUnitDecls :: UnitInfo -> Ghc SDoc
 reportUnitDecls unit_info = do
     let exposed :: [ModuleName]
         exposed = map fst (unitExposedModules unit_info)
-    vcat <$> mapM reportModuleDecls exposed
+    vcat <$> mapM (reportModuleDecls $ unitId unit_info) exposed
 
-reportModuleDecls :: ModuleName -> Ghc SDoc
-reportModuleDecls modl_nm
+reportModuleDecls :: UnitId -> ModuleName -> Ghc SDoc
+reportModuleDecls unit_id modl_nm
   | modl_nm `elem` ignoredModules = do
       return $ vcat [ mod_header, text "-- ignored", text "" ]
   | otherwise = do
-    modl <- GHC.lookupQualifiedModule NoPkgQual modl_nm
+    modl <- GHC.lookupQualifiedModule (OtherPkg unit_id) modl_nm
     mb_mod_info <- GHC.getModuleInfo modl
     mod_info <- case mb_mod_info of
       Nothing -> fail "Failed to find module"