diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2015-09-28 v0.4.1
+	* Revert removing cast from markLocated until further inspection in HaRe.
+
 2015-09-28 v0.4.0.0
 	* Rework HasDecls so that there are only instances for which it is
 	idempotent. Provide functions for managing an LHsBind which is not
diff --git a/ghc-exactprint.cabal b/ghc-exactprint.cabal
--- a/ghc-exactprint.cabal
+++ b/ghc-exactprint.cabal
@@ -1,5 +1,5 @@
 name:                ghc-exactprint
-version:             0.4.0.0
+version:             0.4.1.0
 synopsis:            ExactPrint for GHC
 description:         Using the API Annotations available from GHC 7.10.2, this
                      library provides a means to round trip any code that can
diff --git a/src/Language/Haskell/GHC/ExactPrint/Annotate.hs b/src/Language/Haskell/GHC/ExactPrint/Annotate.hs
--- a/src/Language/Haskell/GHC/ExactPrint/Annotate.hs
+++ b/src/Language/Haskell/GHC/ExactPrint/Annotate.hs
@@ -191,7 +191,10 @@
 -- | Constructs a syntax tree which contains information about which
 -- annotations are required by each element.
 markLocated :: (Annotate ast) => GHC.Located ast -> Annotated ()
-markLocated ast = withLocated ast markAST
+markLocated ast =
+  case cast ast :: Maybe (GHC.LHsDecl GHC.RdrName) of
+    Just d  -> markLHsDecl d
+    Nothing -> withLocated ast markAST
 
 withLocated :: Data a
             => GHC.Located a
@@ -269,7 +272,7 @@
     markMany GHC.AnnSemi -- possible leading semis
     mapM_ markLocated imps
 
-    mapM_ (\(GHC.L l ast) -> markAST l ast) decs
+    mapM_ markLocated decs
 
     mark GHC.AnnCloseC -- Possible '}'
 
@@ -1840,7 +1843,7 @@
   markAST _ (GHC.HsBracket (GHC.DecBrL ds)) = do
     markWithString GHC.AnnOpen "[d|"
     mark GHC.AnnOpenC
-    mapM_ (\(GHC.L l d) -> markAST l d) ds
+    mapM_ markLocated ds
     mark GHC.AnnCloseC
     markWithString GHC.AnnClose "|]"
   -- Introduced after the renamer
