diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,5 +1,5 @@
-Copyright (c) 2007, Björn Bringert
-              2008-2009 Duncan Coutts
+Copyright (c) 2007      Björn Bringert,
+              2008-2012 Duncan Coutts
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without 
diff --git a/htar.cabal b/htar.cabal
--- a/htar.cabal
+++ b/htar.cabal
@@ -1,39 +1,35 @@
 name:            htar
-version:         0.3.1
+version:         0.4
 license:         BSD3
 license-File:    LICENSE
 author:          Bjorn Bringert <bjorn@bringert.net>
-                 Duncan Coutts <duncan@haskell.org>
-maintainer:      Duncan Coutts <duncan@haskell.org>
+                 Duncan Coutts <duncan@community.haskell.org>
+maintainer:      Duncan Coutts <duncan@community.haskell.org>
 copyright:       2007 Bjorn Bringert <bjorn@bringert.net>
-                 2008-2009 Duncan Coutts <duncan@haskell.org>
+                 2008-2012 Duncan Coutts <duncan@community.haskell.org>
 category:        Codec
 synopsis:        Command-line tar archive utility.
 description:     A Command-line utility to create, extract and list the
                  contents of tar archives. It can work with compressed
                  archives using gzip or bzip2 compression.
+                 .
+                 This is in part a demo of the @tar@ library but it is also
+                 usable in place of the ordinary @tar@ program for systems
+                 like Windows that do not come with it as standard.
 build-type:      Simple
-cabal-version:   >= 1.2
-
-flag base3
+cabal-version:   >= 1.6
 
 executable htar
   main-is: htar.hs
   ghc-options: -Wall
   build-depends:
-    base  >= 2   && < 5,
-    tar   >= 0.3 && < 0.4,
-    zlib  >= 0.4 && < 0.6,
-    bzlib >= 0.4 && < 0.6,
-    filepath >= 1
+    base       == 4.*,
+    old-time   >= 1.0,
+    old-locale >= 1.0,
+    directory  >= 1.0,
+    filepath   >= 1.0,
+    bytestring >= 0.9,
+    tar        == 0.4.*,
+    zlib       >= 0.4 && < 0.6,
+    bzlib      >= 0.4 && < 0.6
 
-  if flag(base3)
-    build-depends:
-      base >= 3,
-      old-time   >= 1.0,
-      old-locale >= 1.0,
-      directory  >= 1.0,
-      bytestring >= 0.9
-  else
-    build-depends:
-      base < 3
diff --git a/htar.hs b/htar.hs
--- a/htar.hs
+++ b/htar.hs
@@ -6,6 +6,7 @@
 import qualified Codec.Compression.GZip as GZip (compress, decompress)
 import qualified Codec.Compression.BZip as BZip (compress, decompress)
 
+import Control.Exception     (throwIO)
 import qualified Data.ByteString.Lazy as BS
 import Data.ByteString.Lazy  (ByteString)
 import Data.Bits             (testBit)
@@ -41,7 +42,7 @@
     output = if file == "-" then BS.putStr      else BS.writeFile file
 
     printEntries = Tar.foldEntries (\entry rest -> printEntry entry >> rest)
-                                   (return ()) fail
+                                   (return ()) throwIO
     printEntry = putStrLn . entryInfo verbosity
 
 data Compression = None | GZip | BZip
