diff --git a/TagSoup/Benchmark.hs b/TagSoup/Benchmark.hs
--- a/TagSoup/Benchmark.hs
+++ b/TagSoup/Benchmark.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 
 module TagSoup.Benchmark where
 
@@ -156,11 +157,22 @@
     rnf (TagWarning x) = rnf x
     rnf (TagPosition x y) = () -- both are already ! bound
 
+
+#ifndef BYTESTRING_HAS_NFDATA
+# ifdef MIN_VERSION_bytestring
+#  define BYTESTRING_HAS_NFDATA (MIN_VERSION_bytestring(0,10,0))
+# else
+#  define BYTESTRING_HAS_NFDATA (__GLASGOW_HASKELL__ >= 706)
+# endif
+#endif
+
+#if !BYTESTRING_HAS_NFDATA
 instance NFData LBS.ByteString where
     rnf x = LBS.length x `seq` ()
 
 instance NFData BS.ByteString where
     rnf x = BS.length x `seq` ()
+#endif
 
 
 ---------------------------------------------------------------------
diff --git a/tagsoup.cabal b/tagsoup.cabal
--- a/tagsoup.cabal
+++ b/tagsoup.cabal
@@ -1,7 +1,7 @@
 cabal-version:  >= 1.6
 name:           tagsoup
-version:        0.12.6
-copyright:      Neil Mitchell 2006-2011
+version:        0.12.7
+copyright:      Neil Mitchell 2006-2012
 author:         Neil Mitchell <ndmitchell@gmail.com>
 maintainer:     Neil Mitchell <ndmitchell@gmail.com>
 homepage:       http://community.haskell.org/~ndm/tagsoup/
@@ -58,9 +58,14 @@
 executable tagsoup
     if flag(testprog)
         buildable: True
-        build-depends: QuickCheck == 2.4.*, time, deepseq == 1.1.*, directory, process
+        build-depends:
+            QuickCheck >= 2.4 && < 2.6,
+            deepseq >= 1.1 && < 1.4,
+            time, directory, process
     else
         buildable: False
+
+    extensions: CPP
 
     main-is: Main.hs
     other-modules:
