diff --git a/enumerator.cabal b/enumerator.cabal
--- a/enumerator.cabal
+++ b/enumerator.cabal
@@ -1,5 +1,5 @@
 name: enumerator
-version: 0.4.19
+version: 0.4.20
 license: MIT
 license-file: license.txt
 author: John Millikin <jmillikin@gmail.com>
@@ -128,13 +128,13 @@
   tests/EnumeratorTests/Util.hs
 
 source-repository head
-  type: bazaar
-  location: https://john-millikin.com/software/enumerator/
+  type: git
+  location: https://john-millikin.com/code/haskell-enumerator/
 
 source-repository this
-  type: bazaar
-  location: https://john-millikin.com/branches/enumerator/0.4/
-  tag: enumerator_0.4.19
+  type: git
+  location: https://john-millikin.com/code/haskell-enumerator/
+  tag: haskell-enumerator_0.4.20
 
 library
   ghc-options: -Wall -O2
@@ -146,6 +146,9 @@
     , bytestring >= 0.9
     , containers >= 0.1
     , text >= 0.7
+
+  if impl(ghc >= 7.7)
+    cpp-options: -DGHC78_DATA_TYPEABLE=1
 
   exposed-modules:
     Data.Enumerator
diff --git a/lib/Data/Enumerator/Internal.hs b/lib/Data/Enumerator/Internal.hs
--- a/lib/Data/Enumerator/Internal.hs
+++ b/lib/Data/Enumerator/Internal.hs
@@ -1,3 +1,6 @@
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE StandaloneDeriving #-}
 -- |
 -- Module: Data.Enumerator.Internal
 -- Copyright: 2010-2011 John Millikin
@@ -45,9 +48,14 @@
 import           Control.Monad.Trans.Class (MonadTrans, lift)
 import           Data.Function (fix)
 import           Data.Monoid (Monoid, mempty, mappend, mconcat)
+
+#if GHC78_DATA_TYPEABLE
+import           Data.Typeable (Typeable)
+#else
 import           Data.Typeable ( Typeable, typeOf
                                , Typeable1, typeOf1
                                , mkTyConApp, mkTyCon)
+#endif
 
 -- | A 'Stream' is a sequence of chunks generated by an 'Enumerator'.
 --
@@ -143,6 +151,14 @@
 -- is passed between elements of the data processing pipeline.
 type Enumeratee ao ai m b = Step ai m b -> Iteratee ao m (Step ai m b)
 
+#if GHC78_DATA_TYPEABLE
+
+deriving instance Typeable Stream
+deriving instance Typeable Step
+deriving instance Typeable Iteratee
+
+#else
+
 -- | Since: 0.4.8
 instance Typeable1 Stream where
 	typeOf1 _ = mkTyConApp tyCon [] where
@@ -171,6 +187,8 @@
 			peel = undefined
 			
 			in mkTyConApp tyCon [typeOf a, typeOf1 m]
+
+#endif
 
 instance Monad m => Functor (Iteratee a m) where
 	fmap = CM.liftM
diff --git a/scripts/run-tests b/scripts/run-tests
--- a/scripts/run-tests
+++ b/scripts/run-tests
@@ -10,10 +10,10 @@
 
 require_cabal_dev
 
-# clean_dev_install
+clean_dev_install
 
 pushd tests
-# rm -rf dist
+rm -rf dist
 $CABAL_DEV -s ../cabal-dev install || exit 1
 popd
 
