diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,11 @@
+## Version 0.29.3 (December, 2018)
+
+_Bug fixes_
+
+  - Upper bound for alsa_mixer (see [issue #372])
+
+[issue #372]: https://github.com/jaor/xmobar/issues/372
+
 ## Version 0.29.2 (December, 2018)
 
 _Bug fixes_
diff --git a/src/Xmobar.hs b/src/Xmobar.hs
--- a/src/Xmobar.hs
+++ b/src/Xmobar.hs
@@ -18,6 +18,7 @@
 module Xmobar (xmobar
               , xmobarMain
               , defaultConfig
+              , configFromArgs
               , Runnable (..)
               , Exec (..)
               , Command (..)
@@ -65,5 +66,5 @@
 import Xmobar.Plugins.StdinReader
 import Xmobar.Plugins.XMonadLog
 
-import Xmobar.App.Main(xmobar, xmobarMain)
+import Xmobar.App.Main(xmobar, xmobarMain, configFromArgs)
 import Xmobar.App.Config(defaultConfig)
diff --git a/src/Xmobar/App/Main.hs b/src/Xmobar/App/Main.hs
--- a/src/Xmobar/App/Main.hs
+++ b/src/Xmobar/App/Main.hs
@@ -15,7 +15,7 @@
 ------------------------------------------------------------------------------
 
 
-module Xmobar.App.Main (xmobar, xmobarMain) where
+module Xmobar.App.Main (xmobar, xmobarMain, configFromArgs) where
 
 import Control.Concurrent.Async (Async, cancel)
 import Control.Exception (bracket)
@@ -39,7 +39,7 @@
 import Xmobar.X11.Types
 import Xmobar.X11.Text
 import Xmobar.X11.Window
-import Xmobar.App.Opts
+import Xmobar.App.Opts (recompileFlag, verboseFlag, getOpts, doOpts)
 import Xmobar.App.EventLoop (startLoop, startCommand)
 import Xmobar.App.Compile (recompile, trace)
 import Xmobar.App.Config
@@ -61,6 +61,9 @@
         to = textOffset conf
         ts = textOffsets conf ++ replicate (length fl) (-1)
     startLoop (XConf d r w (fs:fl) (to:ts) ic conf) sig vars
+
+configFromArgs :: Config -> IO Config
+configFromArgs cfg = getArgs >>= getOpts >>= doOpts cfg . fst
 
 cleanupThreads :: [[([Async ()], a)]] -> IO ()
 cleanupThreads vars =
diff --git a/src/Xmobar/App/Opts.hs b/src/Xmobar/App/Opts.hs
--- a/src/Xmobar/App/Opts.hs
+++ b/src/Xmobar/App/Opts.hs
@@ -14,7 +14,7 @@
 --
 ------------------------------------------------------------------------------
 
-module Xmobar.App.Opts where
+module Xmobar.App.Opts (recompileFlag, verboseFlag, getOpts, doOpts) where
 
 import Control.Monad (when)
 import System.Console.GetOpt
diff --git a/xmobar.cabal b/xmobar.cabal
--- a/xmobar.cabal
+++ b/xmobar.cabal
@@ -1,5 +1,5 @@
 name:               xmobar
-version:            0.29.2
+version:            0.29.3
 homepage:           http://xmobar.org
 synopsis:           A Minimalistic Text Based Status Bar
 description: 	    Xmobar is a minimalistic text based status bar.
@@ -223,7 +223,7 @@
        cpp-options: -DLIBMPD
 
     if flag(with_alsa) || flag(all_extensions)
-       build-depends: alsa-mixer > 0.2.0.2
+       build-depends: alsa-mixer > 0.2.0.2 && < 0.3
        build-depends: alsa-core == 0.5.*,
                       process >= 1.4.3.0
        exposed-modules: Xmobar.Plugins.Monitors.Volume
@@ -325,7 +325,7 @@
                  Xmobar.System.Signal
 
   if flag(with_alsa) || flag(all_extensions)
-      build-depends: alsa-mixer > 0.2.0.2,
+      build-depends: alsa-mixer > 0.2.0.2 && < 0.3,
                      alsa-core == 0.5.*,
                      process >= 1.4.3.0
       other-modules: Xmobar.Plugins.Monitors.Volume
