diff --git a/ftphs.cabal b/ftphs.cabal
--- a/ftphs.cabal
+++ b/ftphs.cabal
@@ -1,5 +1,5 @@
 Name: ftphs
-Version: 1.0.8
+Version: 1.0.9
 License: LGPL
 Maintainer: John Goerzen <jgoerzen@complete.org>
 Author: John Goerzen
diff --git a/src/Network/FTP/Server.hs b/src/Network/FTP/Server.hs
--- a/src/Network/FTP/Server.hs
+++ b/src/Network/FTP/Server.hs
@@ -83,9 +83,9 @@
 import Network.FTP.Client.Parser
 import Network.BSD
 import Network.Socket
-import qualified Network
+--import qualified Network
 import System.IO.Utils
-import System.IO.Error
+--import System.IO.Error
 import System.Log.Logger
 import Network.Utils
 import Network.SocketServer
@@ -98,7 +98,7 @@
 import Data.Char
 import Data.IORef
 import Data.List
-import Control.Exception(finally)
+import Control.Exception (try, catch, finally, SomeException)
 import System.IO
 
 data DataType = ASCII | Binary
@@ -168,8 +168,8 @@
 trapIOError h testAction remainingAction =
     do result <- try testAction
        case result of
-         Left err -> do sendReply h 550 (show err)
-                        return True
+         Left (err::SomeException) -> do sendReply h 550 (show err)
+                                    return True
          Right result -> remainingAction result
 
 forceLogin :: CommandHandler -> CommandHandler
@@ -211,7 +211,7 @@
 commandLoop :: FTPServer -> IO ()
 commandLoop h@(FTPServer fh _ _) =
     let errorhandler e = do noticeM logname
-                                    ("Closing due to error: " ++ (show e))
+                                    ("Closing due to error: " ++ (show (e::SomeException)))
                             hClose fh
                             return False
         in do continue <- (flip catch) errorhandler 
