diff --git a/Graphics/HGL/Internals/Utilities.hs b/Graphics/HGL/Internals/Utilities.hs
--- a/Graphics/HGL/Internals/Utilities.hs
+++ b/Graphics/HGL/Internals/Utilities.hs
@@ -20,7 +20,7 @@
         modMVar, modMVar_
 	) where
 
-import qualified Control.Exception as E (bracket, try, IOException, tryJust, ioErrors)
+import qualified Control.Exception as E (bracket, try, IOException, tryJust)
 import Control.Concurrent( MVar, takeMVar, putMVar )
 
 bracket :: IO a -> (a -> IO b) -> (a -> IO c) -> IO c
@@ -33,13 +33,8 @@
 type Exception = E.IOException
 safeTry :: IO a -> IO (Either Exception a)
 
-#if __GLASGOW_HASKELL >= 610 
--- ghc-6.10
+
 safeTry = E.try
-#else
--- ghc 6.8 (and below?)
-safeTry = E.tryJust E.ioErrors
-#endif
 
 
 ----------------------------------------------------------------
diff --git a/Graphics/HGL/Run.hs b/Graphics/HGL/Run.hs
--- a/Graphics/HGL/Run.hs
+++ b/Graphics/HGL/Run.hs
@@ -24,7 +24,7 @@
 import Graphics.HGL.Internals.Utilities (safeTry)
 import Control.Concurrent (forkIO, yield)
 import Data.IORef( newIORef, readIORef, writeIORef )
-import System.IO.Error (try)
+import Control.Exception(try,SomeException)
 #endif
 
 ----------------------------------------------------------------
@@ -60,7 +60,7 @@
   beginGraphics
   quit <- newIORef False
   safeTry $ do
-    forkIO (try m >> writeIORef quit True)
+    forkIO ( (try m :: IO (Either SomeException ())) >> writeIORef quit True)
     yield
     handleEvents (readIORef quit)
   endGraphics
diff --git a/HGL.cabal b/HGL.cabal
--- a/HGL.cabal
+++ b/HGL.cabal
@@ -1,9 +1,9 @@
 name:		HGL
-version:	3.2.0.2
+version:	3.2.0.4
 license:	BSD3
 license-file:	LICENSE
 author: 	Alastair Reid
-maintainer:	Christoph Lueth <christoph.lueth@dfki.de> 
+maintainer:	Christoph Lueth <christoph.lueth@dfki.de>, Alan Hawkins <hawk.alan@gmail.com>
 category:	Graphics
 synopsis:	A simple graphics library based on X11 or Win32
 description:
@@ -22,7 +22,7 @@
 
 library
   if flag(split-base)
-    build-depends: base >= 3 && < 4, array
+    build-depends: base >= 3 && < 10, array
   else
     build-depends: base < 2
   exposed-modules:
