diff --git a/binary.cabal b/binary.cabal
index 5b01fba8448aa3316fe4176543d5f4a947b512e2..b11a525a7a48708bcebad748d6e9ba8c50e68a64 100644
--- a/binary.cabal
+++ b/binary.cabal
@@ -1,5 +1,5 @@
 name:            binary
-version:         0.8.2.0
+version:         0.8.2.1
 license:         BSD3
 license-file:    LICENSE
 author:          Lennart Kolmodin <kolmodin@gmail.com>
diff --git a/changelog.md b/changelog.md
index 669b5d7bf5336164f013962673370f63b0a04a63..2a4debd3431989da798be01d7d002a5963d00f87 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,6 +1,11 @@
 binary
 ======
 
+binary-0.8.2.1
+--------------
+
+- Fix compilation error when using older GHC versions and clang. clang barfs on some of its CPP input (#105).
+
 binary-0.8.2.0
 --------------
 
diff --git a/src/Data/Binary/Get/Internal.hs b/src/Data/Binary/Get/Internal.hs
index 944a2cec54ee1d462b9f8ce10f80106eb11e7abb..07d4177d8d3794e428f90143182bdd9593a5af5d 100644
--- a/src/Data/Binary/Get/Internal.hs
+++ b/src/Data/Binary/Get/Internal.hs
@@ -398,9 +398,7 @@ readN !n f = ensureN n >> unsafeReadN n f
 {-# RULES
 
 "readN/readN merge" forall n m f g.
-  apG (readN n f) (readN m g) = readN (n+m) (\bs -> f bs $ g (B.unsafeDrop n bs))
-
- #-}
+  apG (readN n f) (readN m g) = readN (n+m) (\bs -> f bs $ g (B.unsafeDrop n bs)) #-}
 
 -- | Ensure that there are at least @n@ bytes available. If not, the
 -- computation will escape with 'Partial'.