diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,4 +1,11 @@
+0.1.0.1
+=======
+
+-   Fixed recursion in C pre-processor expansion. This can break the build on
+    some systems.
+
 0.1.0.0
 =======
 
 -   Initial release.
+
diff --git a/Pinch/Internal/Generic.hs b/Pinch/Internal/Generic.hs
--- a/Pinch/Internal/Generic.hs
+++ b/Pinch/Internal/Generic.hs
@@ -17,9 +17,9 @@
 
 #if __GLASGOW_HASKELL__ < 709
 {-# LANGUAGE OverlappingInstances       #-}
-#define OVERLAPPABLE
+#define OVERLAP
 #else
-#define OVERLAPPABLE {-# OVERLAPPABLE #-}
+#define OVERLAP {-# OVERLAPPABLE #-}
 #endif
 -- |
 -- Module      :  Pinch.Internal.Generic
@@ -73,7 +73,7 @@
     combine (VStruct as) (VStruct bs) = VStruct $ as `HM.union` bs
 
 
-instance OVERLAPPABLE GPinchable a => GPinchable (M1 i c a) where
+instance OVERLAP GPinchable a => GPinchable (M1 i c a) where
     type GTag (M1 i c a) = GTag a
     gPinch = gPinch . unM1
     gUnpinch = fmap M1 . gUnpinch
@@ -148,7 +148,7 @@
 field :: Functor f => (a -> f b) -> Field n a -> f (Field n b)
 field f (Field a) = Field <$> f a
 
-instance OVERLAPPABLE (Pinchable a, KnownNat n)
+instance OVERLAP (Pinchable a, KnownNat n)
   => GPinchable (K1 i (Field n a)) where
     type GTag (K1 i (Field n a)) = TStruct
     gPinch (K1 (Field a)) = struct [n .= a]
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,3 +1,5 @@
+[![build-status]](https://travis-ci.org/abhinav/pinch)
+
 `pinch` aims to provide an alternative implementation of Apache Thrift for
 Haskell. The `pinch` library itself acts only as a serialization library. Types
 specify their Thrift encoding by defining instances of the `Pinchable`
@@ -6,5 +8,6 @@
 
 Haddock documentation for this package is avilable on [Hackage] and [here].
 
+  [build-status]: https://travis-ci.org/abhinav/pinch.svg?branch=master
   [Hackage]: http://hackage.haskell.org/package/pinch
   [here]: http://abhinavg.net/pinch/
diff --git a/examples/keyvalue/Client.hs b/examples/keyvalue/Client.hs
--- a/examples/keyvalue/Client.hs
+++ b/examples/keyvalue/Client.hs
@@ -1,8 +1,13 @@
+{-# LANGUAGE CPP                 #-}
 {-# LANGUAGE DeriveDataTypeable  #-}
 {-# LANGUAGE OverloadedStrings   #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE TypeFamilies        #-}
 module Main (main) where
+
+#if __GLASGOW_HASKELL__ < 709
+import Control.Applicative
+#endif
 
 import Control.Monad
 import Control.Monad.Catch  (Exception, throwM)
diff --git a/examples/keyvalue/Server.hs b/examples/keyvalue/Server.hs
--- a/examples/keyvalue/Server.hs
+++ b/examples/keyvalue/Server.hs
@@ -1,7 +1,12 @@
+{-# LANGUAGE CPP                 #-}
 {-# LANGUAGE OverloadedStrings   #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE TypeFamilies        #-}
 module Main (main) where
+
+#if __GLASGOW_HASKELL__ < 709
+import Control.Applicative
+#endif
 
 import Data.ByteString.Lazy       (fromStrict, toStrict)
 import Data.ByteString.Lazy.Char8 (pack)
diff --git a/pinch.cabal b/pinch.cabal
--- a/pinch.cabal
+++ b/pinch.cabal
@@ -1,5 +1,5 @@
 name:                pinch
-version:             0.1.0.0
+version:             0.1.0.1
 synopsis:            An alternative implementation of Thrift for Haskell.
 homepage:            https://github.com/abhinav/pinch
 license:             BSD3
