diff --git a/ghc/compiler/basicTypes/IdInfo.lhs b/ghc/compiler/basicTypes/IdInfo.lhs
index e33873b8235fb4c070ad625628b5e7e4b3869fad..0a9ef0e9dde9a4df986856ba9bfefb7569f8999e 100644
--- a/ghc/compiler/basicTypes/IdInfo.lhs
+++ b/ghc/compiler/basicTypes/IdInfo.lhs
@@ -51,10 +51,17 @@ module IdInfo (
 IMP_Ubiq()
 IMPORT_1_3(Char(toLower))
 
+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ <= 201
 IMPORT_DELOOPER(IdLoop)	-- IdInfo is a dependency-loop ranch, and
 			-- we break those loops by using IdLoop and
 			-- *not* importing much of anything else,
 			-- except from the very general "utils".
+#else
+import {-# SOURCE #-} SpecEnv
+import {-# SOURCE #-} Id
+import {-# SOURCE #-} CoreUnfold
+import {-# SOURCE #-} StdIdInfo
+#endif
 
 import Type		( eqSimpleTy, splitFunTyExpandingDicts )
 import BasicTypes	( NewOrData )
diff --git a/ghc/compiler/basicTypes/IdUtils.lhs b/ghc/compiler/basicTypes/IdUtils.lhs
index 3eb902149b038d04dbaf684d5a7147aa3fb5d969..e607e388b32108dba4f2e9fa574c4269262ae2eb 100644
--- a/ghc/compiler/basicTypes/IdUtils.lhs
+++ b/ghc/compiler/basicTypes/IdUtils.lhs
@@ -9,8 +9,13 @@
 module IdUtils ( primOpName ) where
 
 IMP_Ubiq()
+
+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ <= 201
 IMPORT_DELOOPER(PrelLoop)		-- here for paranoia checking
 IMPORT_DELOOPER(IdLoop) (SpecEnv)
+#else
+import {-# SOURCE #-} SpecEnv ( SpecEnv )
+#endif
 
 import CoreSyn
 import CoreUnfold	( UnfoldingGuidance(..), Unfolding, mkUnfolding )