diff --git a/Trace/Hpc/Mix.hs b/Trace/Hpc/Mix.hs
--- a/Trace/Hpc/Mix.hs
+++ b/Trace/Hpc/Mix.hs
@@ -28,7 +28,7 @@
 -- been introduced in that module, accessed by tick-number position
 -- in the list
 
-import Trace.Hpc.Util (HpcPos, insideHpcPos, Hash, HpcHash(..))
+import Trace.Hpc.Util (HpcPos, insideHpcPos, Hash, HpcHash(..), catchIO)
 import Trace.Hpc.Tix
 
 -- | 'Mix' is the information about a modules static properties, like
@@ -98,7 +98,7 @@
                                      Left  _   -> True
                                      Right tix -> h == tixModuleHash tix
                                   ) -> return $ Just r
-                           _ -> return $ Nothing) `catch` (\ _ -> return $ Nothing)
+                           _ -> return $ Nothing) `catchIO` (\ _ -> return $ Nothing)
                    | dirName <- dirNames
                    ]
    case catMaybes res of
diff --git a/Trace/Hpc/Tix.hs b/Trace/Hpc/Tix.hs
--- a/Trace/Hpc/Tix.hs
+++ b/Trace/Hpc/Tix.hs
@@ -9,7 +9,7 @@
 		     readTix, writeTix, getTixFileName) where
 
 import Data.List (isSuffixOf)
-import Trace.Hpc.Util(Hash)
+import Trace.Hpc.Util (Hash, catchIO)
 
 -- 'Tix ' is the storage format for our dynamic imformation about what
 -- boxes are ticked.
@@ -34,11 +34,11 @@
 
 -- read a Tix File.
 readTix :: String
-	-> IO (Maybe Tix)
-readTix tix_filename = 
-  catch (do contents <- readFile $ tix_filename
-	    return $ Just $ read contents)
-	(\ _ -> return $ Nothing)
+        -> IO (Maybe Tix)
+readTix tix_filename =
+  catchIO (do contents <- readFile $ tix_filename
+              return $ Just $ read contents)
+          (\ _ -> return $ Nothing)
 
 -- write a Tix File.
 writeTix :: String 
diff --git a/Trace/Hpc/Util.hs b/Trace/Hpc/Util.hs
--- a/Trace/Hpc/Util.hs
+++ b/Trace/Hpc/Util.hs
@@ -11,8 +11,10 @@
        , insideHpcPos
        , HpcHash(..)
        , Hash
+       , catchIO
        ) where
 
+import qualified Control.Exception as Exception
 import Data.List(foldl')
 import Data.Char (ord)
 import Data.Bits (xor)
@@ -103,3 +105,7 @@
 
 hxor :: Hash -> Hash -> Hash
 hxor (Hash x) (Hash y) = Hash $ x `xor` y
+
+catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a
+catchIO = Exception.catch
+
diff --git a/hpc.cabal b/hpc.cabal
--- a/hpc.cabal
+++ b/hpc.cabal
@@ -1,5 +1,5 @@
 name:         hpc
-version:      0.5.0.6
+version:      0.5.1.0
 license:      BSD3
 license-file: LICENSE
 author:       Andy Gill
@@ -11,8 +11,8 @@
 Cabal-Version: >= 1.6
 
 source-repository head
-    type:     darcs
-    location: http://darcs.haskell.org/packages/hpc/
+    type:     git
+    location: http://darcs.haskell.org/packages/hpc.git/
 
 Flag small_base
   Description: Choose the new smaller, split-up base package.
