diff --git a/Data/Default/Class.hs b/Data/Default/Class.hs
--- a/Data/Default/Class.hs
+++ b/Data/Default/Class.hs
@@ -31,13 +31,9 @@
 
 {-# LANGUAGE CPP #-}
 
-#if __GLASGOW_HASKELL__ >= 706
-#define HAVE_GHC_706 1
-#else
-#define HAVE_GHC_706 0
-#endif
+#define HAVE_GHC_GENERICS (__GLASGOW_HASKELL__ >= 704)
 
-#if HAVE_GHC_706
+#if HAVE_GHC_GENERICS
 {-# LANGUAGE DefaultSignatures, TypeOperators, FlexibleContexts #-}
 #endif
 
@@ -46,7 +42,7 @@
     Default(..)
 ) where
 
-#if HAVE_GHC_706
+#if HAVE_GHC_GENERICS
 import GHC.Generics
 
 class GDefault f where
@@ -70,7 +66,7 @@
     -- | The default value for this type.
     def :: a
 
-#if HAVE_GHC_706
+#if HAVE_GHC_GENERICS
     default def :: (Generic a, GDefault (Rep a)) => a
     def = to gdef
 #endif
diff --git a/data-default-class.cabal b/data-default-class.cabal
--- a/data-default-class.cabal
+++ b/data-default-class.cabal
@@ -1,5 +1,5 @@
 Name:            data-default-class
-Version:         0.1.0
+Version:         0.1.1
 Cabal-Version:   >= 1.6
 Category:        Data
 Synopsis:        A class for types with a default value
@@ -15,4 +15,7 @@
 
 Library
   Build-Depends:     base >=2 && <5
+  if impl(ghc == 7.4.*)
+    -- for GHC.Generics
+    Build-Depends:   ghc-prim
   Exposed-Modules:   Data.Default.Class
