diff --git a/Language/C/Parser/Monad.hs b/Language/C/Parser/Monad.hs
--- a/Language/C/Parser/Monad.hs
+++ b/Language/C/Parser/Monad.hs
@@ -95,6 +95,12 @@
 import Data.ByteString.Internal (c2w)
 import Data.List (foldl')
 import Data.Loc
+#if !(MIN_VERSION_base(4,9,0))
+import Data.Monoid (Monoid(..), (<>))
+#endif /* !(MIN_VERSION_base(4,9,0)) */
+#if MIN_VERSION_base(4,9,0) && !(MIN_VERSION_base(4,11,0))
+import Data.Semigroup (Semigroup(..))
+#endif
 import qualified Data.Set as Set
 import Data.Typeable (Typeable)
 import Data.Word
diff --git a/Language/C/Parser/Parser.y b/Language/C/Parser/Parser.y
--- a/Language/C/Parser/Parser.y
+++ b/Language/C/Parser/Parser.y
@@ -22,7 +22,12 @@
 import Data.List (intersperse, sort)
 import Data.Loc
 import Data.Maybe (fromMaybe, catMaybes)
-import Data.Monoid
+#if !(MIN_VERSION_base(4,9,0))
+import Data.Monoid (Monoid(..), (<>))
+#endif /* !(MIN_VERSION_base(4,9,0)) */
+#if MIN_VERSION_base(4,9,0) && !(MIN_VERSION_base(4,11,0))
+import Data.Semigroup (Semigroup(..))
+#endif
 import Text.PrettyPrint.Mainland
 import Text.PrettyPrint.Mainland.Class
 
@@ -2185,6 +2190,8 @@
 translation_unit_rlist :
     {- empty -}
       { rnil }
+  | comment
+      { rnil }
   | translation_unit_rlist external_declaration
       { rcons $2 $1 }
   | translation_unit_rlist ANTI_EDECLS
@@ -2192,6 +2199,20 @@
 
 external_declaration :: { Definition }
 external_declaration :
+    external_declaration_
+      { $1 }
+  | external_declaration_ comment
+      { $1 }
+
+  -- Objective-C
+  | objc_class_declaration    { $1 }
+  | objc_interface            { $1 }
+  | objc_protocol_declaration { $1 }
+  | objc_implementation       { $1 }
+  | objc_compatibility_alias  { $1 }
+
+external_declaration_ :: { Definition }
+external_declaration_ :
     function_definition
       { FuncDef $1 (srclocOf $1) }
   | declaration
@@ -2202,13 +2223,6 @@
       { AntiEsc (getANTI_ESC $1) (srclocOf $1) }
   | ANTI_EDECL
       { AntiEdecl (getANTI_EDECL $1) (srclocOf $1) }
-
-  -- Objective-C
-  | objc_class_declaration    { $1 }
-  | objc_interface            { $1 }
-  | objc_protocol_declaration { $1 }
-  | objc_implementation       { $1 }
-  | objc_compatibility_alias  { $1 }
 
 function_definition :: { Func }
 function_definition :
diff --git a/Language/C/Pretty.hs b/Language/C/Pretty.hs
--- a/Language/C/Pretty.hs
+++ b/Language/C/Pretty.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE CPP #-}
-{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 
@@ -17,6 +16,12 @@
                   isLower)
 import Data.Loc
 import Data.Maybe (isJust)
+#if !(MIN_VERSION_base(4,9,0))
+import Data.Monoid (Monoid(..), (<>))
+#endif /* !(MIN_VERSION_base(4,9,0)) */
+#if MIN_VERSION_base(4,9,0) && !(MIN_VERSION_base(4,11,0))
+import Data.Semigroup (Semigroup(..))
+#endif
 
 import Language.C.Syntax
 import Text.PrettyPrint.Mainland
diff --git a/language-c-quote.cabal b/language-c-quote.cabal
--- a/language-c-quote.cabal
+++ b/language-c-quote.cabal
@@ -1,12 +1,12 @@
 name:          language-c-quote
-version:       0.12.1
+version:       0.12.2
 cabal-version: >= 1.10
 license:       BSD3
 license-file:  LICENSE
 copyright:     (c) 2006-2011 Harvard University
                (c) 2011-2013 Geoffrey Mainland
                (c) 2013 Manuel M. T. Chakravarty
-               (c) 2013-2017 Drexel University
+               (c) 2013-2018 Drexel University
 author:        Geoffrey Mainland <mainland@drexel.edu>
 maintainer:    Geoffrey Mainland <mainland@drexel.edu>
 stability:     alpha
@@ -14,7 +14,7 @@
 bug-reports:   https://github.com/mainland/language-c-quote/issues
 category:      Language
 synopsis:      C/CUDA/OpenCL/Objective-C quasiquoting library.
-tested-with:   GHC==7.4.2, GHC==7.6.3, GHC==7.8.3, GHC==7.10.3, GHC==8.0.2, GHC==8.2.1
+tested-with:   GHC==7.4.2, GHC==7.6.3, GHC==7.8.3, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.1
 
 description:
   This package provides a general parser for the C language, including most GCC
@@ -44,7 +44,7 @@
     exception-mtl          >= 0.3   && < 0.5,
     exception-transformers >= 0.3   && < 0.5,
     filepath               >= 1.2   && < 1.5,
-    mainland-pretty        >= 0.6   && < 0.7,
+    mainland-pretty        >= 0.7   && < 0.8,
     mtl                    >= 2.0   && < 3,
     srcloc                 >= 0.4   && < 0.6,
     syb                    >= 0.3   && < 0.8,
@@ -113,7 +113,7 @@
     base                 >= 4   && < 5,
     bytestring           >= 0.9 && < 0.11,
     language-c-quote,
-    mainland-pretty      >= 0.6 && < 0.7,
+    mainland-pretty      >= 0.7 && < 0.8,
     srcloc               >= 0.4 && < 0.6,
     symbol               >= 0.1 && < 0.3,
     test-framework       >= 0.8 && < 0.9,
diff --git a/tests/unit/Main.hs b/tests/unit/Main.hs
--- a/tests/unit/Main.hs
+++ b/tests/unit/Main.hs
@@ -387,6 +387,7 @@
     , testCase "comment at end of statements quote" test_stms_end_comment
     , testCase "comment before antiquoted statements" test_block_stms_comment
     , testCase "comment at beginning of a block" test_issue_55
+    , testCase "comment inside cunit block" test_issue_76
     ]
   where
     test_lbrace_comment :: Assertion
@@ -462,6 +463,29 @@
                 int y;
                 return x;
               }|]
+
+    test_issue_76 :: Assertion
+    test_issue_76 =
+        [cunit|
+          $edecl:d1
+          /* AAA */
+          $edecl:d2
+          struct A { int foo; };
+          /* BBB */
+          struct B { int bar; };
+        |]
+        @?=
+        [cunit|
+          int i;
+          /* AAA */
+          int j;
+          struct A { int foo; };
+          $comment:(" BBB ")
+          struct B { int bar; };
+        |]
+      where
+        d1 = [cedecl|int i;|]
+        d2 = [cedecl|int j;|]
 
 regressionTests :: Test
 regressionTests = testGroup "Regressions"
