diff --git a/sox.cabal b/sox.cabal
--- a/sox.cabal
+++ b/sox.cabal
@@ -1,5 +1,5 @@
 Name:             sox
-Version:          0.2.1
+Version:          0.2.1.1
 License:          GPL
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
@@ -46,16 +46,16 @@
     explicit-exception >= 0.1.3 && < 0.2,
     -- that's the way to get compatibility between GHC 6.10 and 6.12
     extensible-exceptions >=0.1.1 && <0.2,
-    transformers >=0.2 && <0.3
+    transformers >=0.2 && <0.4
   If flag(splitBase)
     Build-Depends:
-      process >= 1.0 && < 1.2,
-      containers >= 0.1 && <0.5,
-      base >= 2 && <5
+      process >=1.0 && <1.2,
+      containers >=0.1 && <0.5,
+      base >=2 && <5
   Else
     Build-Depends:
-      special-functors >= 1.0 && <1.1,
-      base >= 1.0 && < 2
+      special-functors >=1.0 && <1.1,
+      base >=1.0 && <2
 
   Hs-Source-Dirs: src
   If os(windows)
diff --git a/src/Sound/Sox/Play.hs b/src/Sound/Sox/Play.hs
--- a/src/Sound/Sox/Play.hs
+++ b/src/Sound/Sox/Play.hs
@@ -50,7 +50,12 @@
    IO ExitCode
 extended write srcOpts dstOpts sampleRate stream =
    bracket
-      (Proc.runInteractiveProcess "play"
+      {-
+      Formerly we called 'play' here.
+      On Windows the SoX package does not install a 'play' command.
+      However using the '-d' argument for the destination always works.
+      -}
+      (Proc.runInteractiveProcess "sox"
           (Args.decons $ mconcat $
            OptPriv.toArguments
              (mconcat $
@@ -62,6 +67,7 @@
               []) :
            Args.pipe :
            OptPriv.toArguments dstOpts :
+           Args.single "-d" :
            [])
           Nothing Nothing)
       (\(input,output,err,_proc) ->
diff --git a/src/Sound/Sox/Read.hs b/src/Sound/Sox/Read.hs
--- a/src/Sound/Sox/Read.hs
+++ b/src/Sound/Sox/Read.hs
@@ -44,8 +44,8 @@
 However there is @soxi@ for this purpose, which we may support in future.
 
 > :load Sound.Sox.Read Sound.Sox.Signal.List
->
-> open Option.none "test.aiff" >>= withHandle2 Sound.Sox.Signal.List.getContents >>= (\x -> print (Control.Monad.Exception.Asynchronous.result x :: [Data.Int.Int16]))
+> :module + Control.Exception
+> bracket (open Option.none "test.aiff") close $ \h -> withHandle2 Sound.Sox.Signal.List.getContents h >>= \x -> print (Control.Monad.Exception.Asynchronous.result x :: [Data.Int.Int16])
 -}
 open ::
    (Frame.C y) =>
