diff --git a/htools/htools.hs b/htools/htools.hs
index 2dabb5b35d3f25b81ac27802deb437ff52140d33..a25221a1fba7968d6454d4f120ec79bab246ed89 100644
--- a/htools/htools.hs
+++ b/htools/htools.hs
@@ -51,8 +51,7 @@ main = do
   binary <- catchJust (guard . isDoesNotExistError)
             (getEnv "HTOOLS") (const getProgName)
   let name = map toLower binary
-      boolnames = map (\(x, y) -> (x == name, Just y)) personalities
-  case select Nothing boolnames of
+  case name `lookup` personalities of
     Nothing -> usage name
     Just (fn, options, arguments, _) -> do
          cmd_args <- getArgs