diff --git a/System/Console/Haskeline.hs b/System/Console/Haskeline.hs
--- a/System/Console/Haskeline.hs
+++ b/System/Console/Haskeline.hs
@@ -65,7 +65,6 @@
 import qualified System.IO.UTF8 as UTF8
 import Data.Char (isSpace)
 import Control.Monad
-import qualified Control.Exception as Exception
 import Data.Dynamic
 
 
@@ -200,12 +199,10 @@
                         -- ^ Handler to run if Ctrl-C is pressed
                      -> m a -- ^ Computation to run
                      -> m a
-handleInterrupt f = handle $ \e -> case Exception.dynExceptions e of
-                    Just dyn | Just Interrupt <- fromDynamic dyn -> f
-                    _ -> throwIO e
+handleInterrupt f = handle (const f)
 
 throwInterrupt :: MonadIO m => m a
-throwInterrupt = liftIO $ Exception.evaluate $ Exception.throwDyn Interrupt
+throwInterrupt = throwDynIO Interrupt
 
 
 drawEffect :: (LineState s, LineState t, Term (d m), 
diff --git a/System/Console/Haskeline/MonadException.hs b/System/Console/Haskeline/MonadException.hs
--- a/System/Console/Haskeline/MonadException.hs
+++ b/System/Console/Haskeline/MonadException.hs
@@ -9,6 +9,7 @@
 import Control.Exception(Exception)
 import Control.Monad.Reader
 import Control.Monad.State
+import Data.Dynamic
 
 class MonadIO m => MonadException m where
     catch :: m a -> (Exception -> m a) -> m a
@@ -39,6 +40,15 @@
     after a
     return r
  )
+
+throwDynIO :: (Typeable exception, MonadIO m) => exception -> m a
+throwDynIO = liftIO . E.evaluate . E.throwDyn
+
+handleDyn :: (Typeable exception, MonadException m) => (exception -> m a)
+                    -> m a -> m a
+handleDyn f = handle $ \ex -> case E.dynExceptions ex of
+                        Just dyn | Just e <- fromDynamic dyn -> f e
+                        _ -> throwIO ex
 
 
 instance MonadException IO where
diff --git a/haskeline.cabal b/haskeline.cabal
--- a/haskeline.cabal
+++ b/haskeline.cabal
@@ -1,6 +1,6 @@
 Name:           haskeline
 Cabal-Version:  >=1.2
-Version:        0.3
+Version:        0.3.1
 Category:       User Interfaces
 License:        BSD3
 License-File:   LICENSE
