diff --git a/Data/UUID/Internal.hs b/Data/UUID/Internal.hs
--- a/Data/UUID/Internal.hs
+++ b/Data/UUID/Internal.hs
@@ -30,10 +30,10 @@
 
 import Data.Typeable
 
-#if __GLASGOW_HASKELL__ >= 610
-import Data.Data
-#else
+#ifdef BASE_3_SUPPORT 
 import Data.Generics.Basics
+#else
+import Data.Data
 #endif
 
 import Foreign.Ptr
diff --git a/uuid.cabal b/uuid.cabal
--- a/uuid.cabal
+++ b/uuid.cabal
@@ -1,5 +1,5 @@
 Name: uuid
-Version: 1.0.1
+Version: 1.0.2
 Copyright: (c) 2008 Antoine Latter
 Author: Antoine Latter
 Maintainer: aslatter@gmail.com
@@ -19,9 +19,19 @@
 
 Homepage: http://community.haskell.org/~aslatter/code/uuid/
 
+Flag Base3
+  Default: False
+  Description: Set when support for base package version 3 is required.
+
 Library
- Build-Depends: base, random, binary, bytestring, Crypto, maccatcher,
+ Build-Depends: random, binary, bytestring, Crypto, maccatcher,
                 time
+
+ if flag(Base3)
+   Build-Depends: base >= 3, base < 4
+   CPP-Options: -DBASE_3_SUPPORT
+ else
+   Build-Depends: base >=4, base < 5
 
  Exposed-Modules:
    Data.UUID
