diff --git a/ghc/compiler/absCSyn/AbsCSyn.lhs b/ghc/compiler/absCSyn/AbsCSyn.lhs
index 96411a112eade285a661ee76968e9259eefcbc80..7ccf298c2461c04dbc6df109e4bffdf080cd9eb6 100644
--- a/ghc/compiler/absCSyn/AbsCSyn.lhs
+++ b/ghc/compiler/absCSyn/AbsCSyn.lhs
@@ -36,7 +36,14 @@ module AbsCSyn {- (
     )-} where
 
 IMP_Ubiq(){-uitous-}
+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ <= 201
 IMPORT_DELOOPER(AbsCLoop)
+#else
+import {-# SOURCE #-} MachMisc
+import {-# SOURCE #-} CLabel
+import {-# SOURCE #-} ClosureInfo
+import {-# SOURCE #-} CgRetConv
+#endif
 
 import Constants   	( mAX_Vanilla_REG, mAX_Float_REG,
 			  mAX_Double_REG, lIVENESS_R1, lIVENESS_R2,
diff --git a/ghc/compiler/absCSyn/CLabel.lhs b/ghc/compiler/absCSyn/CLabel.lhs
index 603f0a0cb1142de7b2f89197dcf761ff36d2686a..9fedf648a141131f85457cdd5a2ced9790cfe360 100644
--- a/ghc/compiler/absCSyn/CLabel.lhs
+++ b/ghc/compiler/absCSyn/CLabel.lhs
@@ -48,11 +48,21 @@ module CLabel (
     ) where
 
 IMP_Ubiq(){-uitous-}
+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ <= 201
 IMPORT_DELOOPER(AbsCLoop)		( CtrlReturnConvention(..),
 			  ctrlReturnConvAlg
 			)
+#else
+import {-# SOURCE #-} CgRetConv
+#endif
+
+
 #if ! OMIT_NATIVE_CODEGEN
+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ <= 201
 IMPORT_DELOOPER(NcgLoop)		( underscorePrefix, fmtAsmLbl )
+#else
+import {-# SOURCE #-} MachMisc ( underscorePrefix, fmtAsmLbl )
+#endif
 #endif
 
 import CStrings		( pp_cSEP )
diff --git a/ghc/compiler/absCSyn/CStrings.lhs b/ghc/compiler/absCSyn/CStrings.lhs
index 964623a47ff2c3c7b53f38fd9638ba9665751242..c6beabf931e04d153a37b88fe0eb3f61b398d659 100644
--- a/ghc/compiler/absCSyn/CStrings.lhs
+++ b/ghc/compiler/absCSyn/CStrings.lhs
@@ -14,11 +14,11 @@ module CStrings(
 
   ) where
 
+IMPORT_1_3(Char (isAlphanum,ord,chr))
 CHK_Ubiq() -- debugging consistency check
 
 import Pretty
 
-IMPORT_1_3(Char (isAlphanum,ord,chr))
 \end{code}
 
 
diff --git a/ghc/compiler/absCSyn/HeapOffs.lhs b/ghc/compiler/absCSyn/HeapOffs.lhs
index 5878e08c18a94391266a3c46f7cc3fd0a7479978..7d55046abf42a406beb571044c6544ec646b4f5f 100644
--- a/ghc/compiler/absCSyn/HeapOffs.lhs
+++ b/ghc/compiler/absCSyn/HeapOffs.lhs
@@ -33,7 +33,11 @@ module HeapOffs (
 
 IMP_Ubiq(){-uitous-}
 #if ! OMIT_NATIVE_CODEGEN
+# if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ <= 201
 IMPORT_DELOOPER(AbsCLoop)		( fixedHdrSizeInWords, varHdrSizeInWords )
+# else
+import {-# SOURCE #-} MachMisc
+# endif
 #endif
 
 import Maybes		( catMaybes )
@@ -319,7 +323,7 @@ pprHeapOffsetPieces sty int_offs fxdhdr_offs varhdr_offs tothdr_offs
   where
     pp_hdrs hdr_pp [] = Nothing
     pp_hdrs hdr_pp [SMRI(rep, n)] | n _EQ_ ILIT(1) = Just ((<>) (text (show rep)) hdr_pp)
-    pp_hdrs hdr_pp hdrs = Just (parens (sep (punctuate (char '+')
+    pp_hdrs hdr_pp hdrs = Just (parens (hsep (punctuate (char '+')
 						(map (pp_hdr hdr_pp) hdrs))))
 
     pp_hdr :: Doc -> SMRep__Int -> Doc
diff --git a/ghc/compiler/absCSyn/PprAbsC.lhs b/ghc/compiler/absCSyn/PprAbsC.lhs
index 049ebd2f14df5432d05941c91e8c2a98bee3345a..6d4f3bac9257dc632faf6f7cc4a78e27869dfdb3 100644
--- a/ghc/compiler/absCSyn/PprAbsC.lhs
+++ b/ghc/compiler/absCSyn/PprAbsC.lhs
@@ -19,7 +19,7 @@ module PprAbsC (
     ) where
 
 IMP_Ubiq(){-uitous-}
-IMPORT_DELOOPER(AbsCLoop)		-- break its dependence on ClosureInfo
+
 IMPORT_1_3(IO(Handle))
 IMPORT_1_3(Char(isDigit,isPrint))
 #if __GLASGOW_HASKELL__ == 201
@@ -28,6 +28,12 @@ IMPORT_1_3(GHCbase(Addr(..)) ) -- to see innards
 import GlaExts (Addr(..))
 #endif
 
+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ <= 201
+IMPORT_DELOOPER(AbsCLoop)		-- break its dependence on ClosureInfo
+#else
+import {-# SOURCE #-} ClosureInfo
+#endif
+
 import AbsCSyn
 
 import AbsCUtils	( getAmodeRep, nonemptyAbsC,