diff --git a/System/USB/IO/Synchronous/Enumerator.hs b/System/USB/IO/Synchronous/Enumerator.hs
--- a/System/USB/IO/Synchronous/Enumerator.hs
+++ b/System/USB/IO/Synchronous/Enumerator.hs
@@ -50,8 +50,8 @@
 -- from transformers:
 import Control.Monad.IO.Class           ( liftIO )
 
--- from monad-peel:
-import Control.Monad.IO.Peel            ( MonadPeelIO, liftIOOp )
+-- from monad-control:
+import Control.Monad.IO.Control         ( MonadControlIO, liftIOOp )
 
 -- from usb:
 import System.USB.DeviceHandling        ( DeviceHandle )
@@ -100,7 +100,7 @@
 -- Enumerators
 --------------------------------------------------------------------------------
 #if MIN_VERSION_iteratee(0,4,0)
-enumReadBulk ∷ (ReadableChunk s Word8, NullPoint s, MonadPeelIO m)
+enumReadBulk ∷ (ReadableChunk s Word8, NullPoint s, MonadControlIO m)
              ⇒ DeviceHandle    -- ^ A handle for the device to communicate with.
              → EndpointAddress -- ^ The address of a valid 'In' and 'Bulk'
                                --   endpoint to communicate with. Make sure the
@@ -116,7 +116,7 @@
              → Enumerator s m α
 enumReadBulk = enumRead c'libusb_bulk_transfer
 
-enumReadInterrupt ∷ (ReadableChunk s Word8, NullPoint s, MonadPeelIO m)
+enumReadInterrupt ∷ (ReadableChunk s Word8, NullPoint s, MonadControlIO m)
                   ⇒ DeviceHandle    -- ^ A handle for the device to communicate
                                     --   with.
                   → EndpointAddress -- ^ The address of a valid 'In' and
@@ -138,7 +138,7 @@
 
 --------------------------------------------------------------------------------
 
-enumRead ∷ (ReadableChunk s Word8, NullPoint s, MonadPeelIO m)
+enumRead ∷ (ReadableChunk s Word8, NullPoint s, MonadControlIO m)
          ⇒ C'TransferFunc → ( DeviceHandle
                             → EndpointAddress
                             → Size
@@ -175,7 +175,7 @@
 
 --------------------------------------------------------------------------------
 #else
-enumReadBulk ∷ (ReadableChunk s Word8, MonadPeelIO m)
+enumReadBulk ∷ (ReadableChunk s Word8, MonadControlIO m)
              ⇒ DeviceHandle    -- ^ A handle for the device to communicate with.
              → EndpointAddress -- ^ The address of a valid 'In' and 'Bulk'
                                --   endpoint to communicate with. Make sure the
@@ -191,7 +191,7 @@
              → EnumeratorGM s Word8 m α
 enumReadBulk = enumRead c'libusb_bulk_transfer
 
-enumReadInterrupt ∷ (ReadableChunk s Word8, MonadPeelIO m)
+enumReadInterrupt ∷ (ReadableChunk s Word8, MonadControlIO m)
                   ⇒ DeviceHandle    -- ^ A handle for the device to communicate
                                     --   with.
                   → EndpointAddress -- ^ The address of a valid 'In' and
@@ -213,7 +213,7 @@
 
 --------------------------------------------------------------------------------
 
-enumRead ∷ (ReadableChunk s Word8, MonadPeelIO m)
+enumRead ∷ (ReadableChunk s Word8, MonadControlIO m)
          ⇒ C'TransferFunc → ( DeviceHandle
                             → EndpointAddress
                             → Size
diff --git a/usb-enumerator.cabal b/usb-enumerator.cabal
--- a/usb-enumerator.cabal
+++ b/usb-enumerator.cabal
@@ -1,5 +1,5 @@
 name:          usb-enumerator
-version:       0.2.0.2
+version:       0.3
 cabal-version: >=1.6
 build-type:    Custom
 license:       BSD3
@@ -22,8 +22,8 @@
   build-depends: base                              >= 4     && < 4.4
                , base-unicode-symbols              >= 0.1.1 && < 0.3
                , bindings-libusb                   >= 1.3   && < 1.5
-               , iteratee                          >= 0.3.5 && < 0.8
+               , iteratee                          >= 0.3.5 && < 0.9
                , transformers                      >= 0.2   && < 0.3
-               , monad-peel                        >= 0.1   && < 0.2
-               , usb                               >= 0.5   && < 0.8
+               , monad-control                     >= 0.2   && < 0.3
+               , usb                               >= 0.5   && < 0.9
   exposed-modules: System.USB.IO.Synchronous.Enumerator
