diff --git a/Trace/Hpc/Reflect.hsc b/Trace/Hpc/Reflect.hsc
--- a/Trace/Hpc/Reflect.hsc
+++ b/Trace/Hpc/Reflect.hsc
@@ -5,13 +5,30 @@
   , updateTix 
   ) where
 
+import Trace.Hpc.Tix
+
+#if __GLASGOW_HASKELL__ < 608
+
+-- Older GHCs don't have the info in the header files for the real
+-- contents of this module to compile
+
+clearTix :: IO ()
+clearTix = error "clearTix not defined for GHC < 6.8"
+
+examineTix :: IO Tix
+examineTix = error "examineTix not defined for GHC < 6.8"
+
+updateTix :: Tix -> IO ()
+updateTix = error "updateTix not defined for GHC < 6.8"
+
+#else
+
 import Foreign.C.String
 import Foreign.Marshal.Array
 import Foreign.Ptr
 import Foreign.Storable ( Storable(..) )
 import Data.Word 
 import Data.Int
-import Trace.Hpc.Tix
 import Trace.Hpc.Util
 import System.IO.Unsafe
 
@@ -73,3 +90,6 @@
 		  else True
 		]
       return ()
+
+#endif
+
diff --git a/hpc.cabal b/hpc.cabal
--- a/hpc.cabal
+++ b/hpc.cabal
@@ -1,5 +1,5 @@
 name:         hpc
-version:      0.5.0.1
+version:      0.5.0.2
 license:      BSD3
 license-file: LICENSE
 author:       Andy Gill
@@ -7,11 +7,24 @@
 category:     Control
 synopsis:     Code Coverage Library for Haskell
 build-type:   Simple
-ghc-options: -Wall
-exposed-modules:
-		 Trace.Hpc.Util,
-		 Trace.Hpc.Mix,
-		 Trace.Hpc.Tix,
-		 Trace.Hpc.Reflect
-build-depends: base, directory, old-time, containers
-extensions: CPP
+Cabal-Version: >= 1.2
+
+Flag small_base
+  Description: Choose the new smaller, split-up base package.
+
+Library
+    exposed-modules:
+        Trace.Hpc.Util
+        Trace.Hpc.Mix
+        Trace.Hpc.Tix
+        Trace.Hpc.Reflect
+    extensions: CPP
+    if flag(small_base)
+        Build-Depends: base       >= 3   && < 5,
+                       directory  >= 1   && < 1.1,
+                       old-time   >= 1   && < 1.1,
+                       containers >= 0.1 && < 0.3
+    else
+        Build-Depends: base < 3
+    ghc-options: -Wall
+
