diff --git a/HSH.cabal b/HSH.cabal
--- a/HSH.cabal
+++ b/HSH.cabal
@@ -1,5 +1,5 @@
 Name: HSH
-Version: 2.0.4
+Version: 2.1.0
 License: LGPL
 Maintainer: John Goerzen <jgoerzen@complete.org>
 Author: John Goerzen
diff --git a/HSH/Command.hs b/HSH/Command.hs
--- a/HSH/Command.hs
+++ b/HSH/Command.hs
@@ -43,7 +43,7 @@
 import Data.Maybe.Utils
 import Data.Maybe
 import Data.List.Utils(uniq)
-import Control.Exception(evaluate, SomeException, catch)
+import Control.Exception(try, evaluate, SomeException, catch)
 import Text.Regex.Posix
 import Control.Monad(when)
 import Data.String.Utils(rstrip)
diff --git a/HSH/ShellEquivs.hs b/HSH/ShellEquivs.hs
--- a/HSH/ShellEquivs.hs
+++ b/HSH/ShellEquivs.hs
@@ -20,6 +20,8 @@
 
 -}
 
+{-# LANGUAGE ScopedTypeVariables #-}
+
 #if !(defined(mingw32_HOST_OS) || defined(mingw32_TARGET_OS) || defined(__MINGW32__))
 #define __HSH_POSIX__
 #else
@@ -84,7 +86,7 @@
 import Text.Printf (printf)
 import Control.Monad (foldM)
 import System.Directory hiding (createDirectory)
-import Control.Exception(evaluate)
+import Control.Exception(evaluate, catch, try, SomeException(..))
 -- import System.FilePath (splitPath)
 
 #ifdef __HSH_POSIX__
@@ -314,7 +316,7 @@
 Non-tilde expansion is done by the MissingH module System.Path.Glob. -}
 glob :: FilePath -> IO [FilePath]
 glob inp@('~':remainder) =
-    catch expanduser (\_ -> Glob.glob rest)
+    catch expanduser (\(e::SomeException) -> Glob.glob rest)
     where (username, rest) = span (/= '/') remainder
 #ifdef __HSH_POSIX__
           expanduser =
