diff --git a/alsa-seq.cabal b/alsa-seq.cabal
--- a/alsa-seq.cabal
+++ b/alsa-seq.cabal
@@ -1,5 +1,5 @@
 Name:           alsa-seq
-Version:        0.6.0.2
+Version:        0.6.0.3
 Author:
   Henning Thielemann <alsa@henning-thielemann.de>,
   Dylan Simon <dylan@dylex.net>,
@@ -30,6 +30,11 @@
   type:     darcs
   location: http://code.haskell.org/alsa/seq/
 
+Source-Repository this
+  tag:      0.6.0.3
+  type:     darcs
+  location: http://code.haskell.org/alsa/seq/
+
 Flag buildExamples
   description: Build example executables
   default:     False
@@ -43,7 +48,7 @@
     alsa-core >=0.5 && <0.6,
     enumset >=0.0.3 && <0.1,
     transformers >=0.2 && <0.4,
-    array >=0.1 && <0.5,
+    array >=0.1 && <0.6,
     bytestring >=0.9 && <0.11,
     data-accessor >=0.2.2 && <0.3,
     utility-ht >=0.0.7 && <0.1,
@@ -145,7 +150,7 @@
     alsa-core >=0.5 && <0.6,
     enumset >=0.0.3 && <0.1,
     transformers >=0.2 && <0.4,
-    array >=0.1 && <0.5,
+    array,
     bytestring >=0.9 && <0.11,
     data-accessor >=0.2.2 && <0.3,
     utility-ht >=0.0.7 && <0.1,
@@ -185,7 +190,7 @@
     alsa-core >=0.5 && <0.6,
     enumset >=0.0.3 && <0.1,
     transformers >=0.2 && <0.4,
-    array >=0.1 && <0.5,
+    array,
     bytestring >=0.9 && <0.11,
     data-accessor >=0.2.2 && <0.3,
     utility-ht >=0.0.7 && <0.1,
@@ -224,7 +229,7 @@
     alsa-core >=0.5 && <0.6,
     enumset >=0.0.3 && <0.1,
     transformers >=0.2 && <0.4,
-    array >=0.1 && <0.5,
+    array,
     bytestring >=0.9 && <0.11,
     data-accessor >=0.2.2 && <0.3,
     utility-ht >=0.0.7 && <0.1,
@@ -263,7 +268,7 @@
     alsa-core >=0.5 && <0.6,
     enumset >=0.0.3 && <0.1,
     transformers >=0.2 && <0.4,
-    array >=0.1 && <0.5,
+    array,
     bytestring >=0.9 && <0.11,
     data-accessor >=0.2.2 && <0.3,
     utility-ht >=0.0.7 && <0.1,
@@ -303,7 +308,7 @@
     alsa-core >=0.5 && <0.6,
     enumset >=0.0.3 && <0.1,
     transformers >=0.2 && <0.4,
-    array >=0.1 && <0.5,
+    array,
     bytestring >=0.9 && <0.11,
     data-accessor >=0.2.2 && <0.3,
     utility-ht >=0.0.7 && <0.1,
@@ -343,7 +348,7 @@
     alsa-core >=0.5 && <0.6,
     enumset >=0.0.3 && <0.1,
     transformers >=0.2 && <0.4,
-    array >=0.1 && <0.5,
+    array,
     bytestring >=0.9 && <0.11,
     data-accessor >=0.2.2 && <0.3,
     utility-ht >=0.0.7 && <0.1,
@@ -384,7 +389,7 @@
     alsa-core >=0.5 && <0.6,
     enumset >=0.0.3 && <0.1,
     transformers >=0.2 && <0.4,
-    array >=0.1 && <0.5,
+    array,
     bytestring >=0.9 && <0.11,
     data-accessor >=0.2.2 && <0.3,
     utility-ht >=0.0.7 && <0.1,
@@ -425,7 +430,7 @@
     alsa-core >=0.5 && <0.6,
     enumset >=0.0.3 && <0.1,
     transformers >=0.2 && <0.4,
-    array >=0.1 && <0.5,
+    array,
     bytestring >=0.9 && <0.11,
     data-accessor >=0.2.2 && <0.3,
     utility-ht >=0.0.7 && <0.1,
diff --git a/src/Sound/ALSA/Sequencer/Concurrent.hs b/src/Sound/ALSA/Sequencer/Concurrent.hs
--- a/src/Sound/ALSA/Sequencer/Concurrent.hs
+++ b/src/Sound/ALSA/Sequencer/Concurrent.hs
@@ -13,21 +13,20 @@
 import qualified Sound.ALSA.Sequencer.Event as Event
 import Sound.ALSA.Exception (code, )
 
+import qualified Control.Exception as Exc
+import qualified System.Posix.Poll as Poll
+import qualified Data.EnumSet as EnumSet
 import Control.Concurrent (yield, threadWaitRead, threadWaitWrite, forkIO, killThread, )
 import Control.Concurrent.MVar (newEmptyMVar, putMVar, takeMVar, )
-import Control.Exception (catchJust, catch, )
+import Control.Exception (catchJust, )
 import Control.Monad (guard, when, )
 import Data.Function (fix, )
 import Data.Word (Word, )
 import Foreign.C.Error (eINTR, )
 import System.IO.Error (isFullError, )
 import System.Posix.Types (Fd, )
-import qualified System.Posix.Poll as Poll
-import qualified Data.EnumSet as EnumSet
 
-import Prelude hiding (catch, )
 
-
 data WaitFd
   = WaitRead Fd
   | WaitWrite Fd
@@ -44,7 +43,10 @@
 threadWaitPolls [p@(WaitWrite f)] = threadWaitWrite f >> return p
 threadWaitPolls l = do
   w <- newEmptyMVar
-  let poll1 p = catch (threadWaitPolls [p] >>= putMVar w . Right) (putMVar w . Left)
+  let poll1 p =
+         Exc.catch
+            (threadWaitPolls [p] >>= putMVar w . Right)
+            (putMVar w . Left)
   t <- mapM (forkIO . poll1) l
   r <- takeMVar w
   mapM_ killThread t
