diff --git a/System/Console/CmdLib/Command.hs b/System/Console/CmdLib/Command.hs
--- a/System/Console/CmdLib/Command.hs
+++ b/System/Console/CmdLib/Command.hs
@@ -1,6 +1,6 @@
 {-# LANGUAGE ScopedTypeVariables, GADTs, MultiParamTypeClasses, FunctionalDependencies,
              FlexibleInstances, UndecidableInstances, OverlappingInstances, DeriveDataTypeable,
-             FlexibleContexts, TupleSections, Rank2Types #-}
+             FlexibleContexts, TupleSections, Rank2Types, CPP #-}
 module System.Console.CmdLib.Command where
 
 import System.Console.CmdLib.Attribute
@@ -11,7 +11,7 @@
 import Data.List( sort, intercalate, isPrefixOf )
 import Data.Char( toLower )
 import Data.Maybe( fromJust, isNothing )
-import Control.Monad( when, forM_, void )
+import Control.Monad( when, forM_ )
 import Control.Exception ( evaluate, catch, SomeException )
 import System.IO( hPutStrLn, stderr )
 import System.Exit
@@ -224,6 +224,13 @@
 
 commandGroup :: (Commands a) => String -> a -> [CommandWrap]
 commandGroup s l = [CommandGroup s (toCommands l)]
+
+#if !MIN_VERSION_base(4,3,0)
+instance Monad (Either e) where
+        return = Right
+        Left  l >>= _ = Left l
+        Right r >>= k = k r    
+#endif
 
 -- TODO: disambiguation, hidden commands (aliases)
 findCommand :: String -> [CommandWrap] -> [CommandWrap]
diff --git a/cmdlib.cabal b/cmdlib.cabal
--- a/cmdlib.cabal
+++ b/cmdlib.cabal
@@ -1,5 +1,5 @@
 name:        cmdlib
-version:     0.3.2
+version:     0.3.2.1
 synopsis:    a library for command line parsing & online help
 
 description: A commandline parsing library, based on getopt. Comes with a
