diff --git a/Cabal/Distribution/Simple/PreProcess.hs b/Cabal/Distribution/Simple/PreProcess.hs
index a98bbf0790f2c8e01981250a8e22bcb0dcc04917..eadb148ff0109deeecdbad15786899daed88364f 100644
--- a/Cabal/Distribution/Simple/PreProcess.hs
+++ b/Cabal/Distribution/Simple/PreProcess.hs
@@ -486,6 +486,7 @@ ppC2hs bi lbi =
           -- Options from the current package:
            [ "--cpp=" ++ programPath gccProg, "--cppopts=-E" ]
         ++ [ "--cppopts=" ++ opt | opt <- getCppOptions bi lbi ]
+        ++ [ "--cppopts=-include" ++ (autogenModulesDir lbi </> cppHeaderName) ]
         ++ [ "--include=" ++ outBaseDir ]
 
           -- Options from dependent packages
diff --git a/Cabal/changelog b/Cabal/changelog
index e6d1c5e9f6f701caaa00d80c7676b4b7414b3303..fa83cb34ba38e396b49535550ddcaba92fdbfe37 100644
--- a/Cabal/changelog
+++ b/Cabal/changelog
@@ -2,6 +2,7 @@
 
 1.23.x.x (current development version) 
 	* Deal with extra C sources from preprocessors (#238).
+	* Include cabal_macros.h when running c2hs.
 
 1.22.0.0 Johan Tibell <johan.tibell@gmail.com> January 2015
 	* Support GHC 7.10.