diff --git a/Bamse/Writer.hs b/Bamse/Writer.hs
--- a/Bamse/Writer.hs
+++ b/Bamse/Writer.hs
@@ -36,6 +36,7 @@
 
 import Util.List     ( mapFirstDefault, enclose )
 
+import System.Win32.Com ( catchComException, throwIOComException )
 import System.Win32.Com.Automation
                      ( (#), coRun, coCreateObject, 
 		       isCoError, coGetErrorString,
@@ -88,7 +89,7 @@
   createBasePackage (w_toolDir env) (w_templateDir env) (w_outFile env)
   putStrLn "done."
   ip <- coCreateObject "WindowsInstaller.Installer" iidInstaller
-  flip catch (topHandler ip) $ do
+  flip catchComException (topHandler ip) $ do
     putStr "Creating MSI tables.."
     db <- ip # openDatabase (w_outFile env) (fromEnum MsiOpenDatabaseModeTransact)
     db # createTables tables
@@ -119,7 +120,7 @@
   when (not flg)
        (ioError (userError ("Unable to locate: " ++ oFile)))
   ip  <- coCreateObject "WindowsInstaller.Installer" iidInstaller
-  flip catch (topHandler ip) $ do
+  flip catchComException (topHandler ip) $ do
     db  <- ip # openDatabase oFile (fromEnum MsiOpenDatabaseModeReadOnly)
     (rec,_) <- db # fetchRow "Property"
   		      [ ("Property", "ProductCode") ]
@@ -138,7 +139,7 @@
      		 [1 .. len]
      ioError (userError (v ++ 
 	                 unlines (("\nDetails (first val is the error code): ") : map ("  "++) ls)))
- | otherwise = ioError err
+ | otherwise = throwIOComException err
 
 --
 -- Function: storeTables
diff --git a/bamse.cabal b/bamse.cabal
--- a/bamse.cabal
+++ b/bamse.cabal
@@ -1,5 +1,5 @@
 name: bamse
-version: 0.9.1
+version: 0.9.2
 Synopsis: A Windows Installer (MSI) generator framework
 Description:
    Bamse is a framework for building Windows Installers for
@@ -97,7 +97,7 @@
 
  Ghc-Options:     -Wall
 
- build-depends: com, haskell98, directory, pretty
+ build-depends: com >= 1.2 , haskell98, directory, pretty
  if flag(old-base)
    Build-Depends: base < 3
  else
