diff --git a/alsa-pcm.cabal b/alsa-pcm.cabal
--- a/alsa-pcm.cabal
+++ b/alsa-pcm.cabal
@@ -1,5 +1,5 @@
 Name:          alsa-pcm
-Version:       0.6.0.4
+Version:       0.6.1
 Copyright:     Bjorn Bringert, Iavor S. Diatchki, Henning Thielemann
 Maintainer:    Henning Thielemann <alsa@henning-thielemann.de>
 Author:        Henning Thielemann <alsa@henning-thielemann.de>, Bjorn Bringert <bjorn@bringert.net>, Iavor S. Diatchki <iavor.diatchki@gmail.com>
@@ -9,7 +9,7 @@
 Homepage:      http://www.haskell.org/haskellwiki/ALSA
 Stability:     Experimental
 Build-Type:    Simple
-Cabal-Version: >= 1.14
+Cabal-Version: 1.14
 
 Synopsis: Binding to the ALSA Library API (PCM audio).
 Description:
@@ -28,7 +28,7 @@
 Source-Repository this
   type:     darcs
   location: http://code.haskell.org/alsa/pcm/
-  tag:      0.6.0.4
+  tag:      0.6.1
 
 Flag buildExamples
   description: Build example executables
@@ -47,7 +47,8 @@
     alsa-core >=0.5 && <0.6,
     storable-record >=0.0.2 && <0.1,
     sample-frame >=0.0.1 && <0.1,
-    array >= 0.1 && <0.6,
+    array >=0.1 && <0.6,
+    semigroups >=0.1 && <1.0,
     extensible-exceptions >=0.1.1 && <0.2,
     base >= 3 && <5
 
diff --git a/src/Sound/ALSA/PCM/Core/Class.hs b/src/Sound/ALSA/PCM/Core/Class.hs
--- a/src/Sound/ALSA/PCM/Core/Class.hs
+++ b/src/Sound/ALSA/PCM/Core/Class.hs
@@ -30,10 +30,6 @@
 
 
 
-{-
-We should have support for 24bit samples
-that are packed on disk but padded to 32bit in memory.
--}
 class (Storable y, Frame.C y) => SampleFmt y where
    sampleFmtToPcmFormat :: y -> HwParams.Format
 
diff --git a/src/Sound/ALSA/PCM/Core/Handle.hsc b/src/Sound/ALSA/PCM/Core/Handle.hsc
--- a/src/Sound/ALSA/PCM/Core/Handle.hsc
+++ b/src/Sound/ALSA/PCM/Core/Handle.hsc
@@ -14,6 +14,7 @@
 
 import Data.Bits ((.|.), )
 import Data.Monoid (Monoid, mempty, mappend, mconcat, )
+import Data.Semigroup (Semigroup, (<>), )
 
 import Prelude hiding (any, )
 
@@ -60,6 +61,9 @@
 #{enum Mode, Mode,
    nonBlock = SND_PCM_NONBLOCK,
    async = SND_PCM_ASYNC }
+
+instance Semigroup Mode where
+   Mode a <> Mode b = Mode (a .|. b)
 
 instance Monoid Mode where
    mempty = Mode 0
