diff --git a/Data/Void.hs b/Data/Void.hs
--- a/Data/Void.hs
+++ b/Data/Void.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Data.Void
@@ -19,11 +18,11 @@
 import Data.Data
 #endif
 
-#ifdef GLASGOW_HASKELL
+#ifdef __GLASGOW_HASKELL__
 import Unsafe.Coerce
 #endif
 
-#if GLASGOW_HASKELL < 700
+#if __GLASGOW_HASKELL__ < 700
 data Void = Void !Void 
 #else
 newtype Void = Void Void
@@ -41,7 +40,7 @@
 absurd (Void a) = absurd a
 
 vacuous :: Functor f => f Void -> f a
-#ifdef GLASGOW_HASKELL
+#ifdef __GLASGOW_HASKELL__
 vacuous = unsafeCoerce
 #else
 -- other haskell compilers are free to use less homogeneous representations
diff --git a/void.cabal b/void.cabal
--- a/void.cabal
+++ b/void.cabal
@@ -1,6 +1,6 @@
 name:          void
 category:      Data Structures
-version:       0.5.4
+version:       0.5.4.1
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
@@ -22,9 +22,16 @@
   default: True
 
 library
-  build-depends: base >= 3 && < 10, semigroups >= 0.5 && < 0.6
-  exposed-modules: Data.Void
+  extensions: 
+    CPP
+  exposed-modules: 
+    Data.Void
+  build-depends: 
+    base >= 3 && < 10,
+    semigroups >= 0.5 && < 0.6
+
   ghc-options: -Wall 
+
   if flag(DeriveDataTypeable)
     extensions: DeriveDataTypeable
     cpp-options: -DLANGUAGE_DeriveDataTypeable
