diff --git a/happstack-server.cabal b/happstack-server.cabal
--- a/happstack-server.cabal
+++ b/happstack-server.cabal
@@ -1,5 +1,5 @@
 Name:                happstack-server
-Version:             6.0.0
+Version:             6.0.1
 Synopsis:            Web related tools and services.
 Description:         Happstack Server provides an HTTP server and a rich set of functions for routing requests, handling query parameters, generating responses, working with cookies, serving files, and more. For in-depth documentation see the Happstack Crash Course <http://happstack.com/docs/crashcourse/index.html>
 License:             BSD3
diff --git a/src/Happstack/Server/FileServe/BuildingBlocks.hs b/src/Happstack/Server/FileServe/BuildingBlocks.hs
--- a/src/Happstack/Server/FileServe/BuildingBlocks.hs
+++ b/src/Happstack/Server/FileServe/BuildingBlocks.hs
@@ -59,7 +59,7 @@
 import Happstack.Server.Types      (Length(ContentLength), Request(rqPaths, rqUri), Response(SendFile), RsFlags(rsfLength), nullRsFlags, result, resultBS, setHeader)
 import System.Directory (doesDirectoryExist, doesFileExist, getDirectoryContents, getModificationTime)
 import System.FilePath ((</>), addTrailingPathSeparator, joinPath, takeExtension)
-import System.IO (IOMode(ReadMode), hFileSize, hClose, openBinaryFile)
+import System.IO (IOMode(ReadMode), hFileSize, hClose, openBinaryFile, withBinaryFile)
 import System.Locale (defaultTimeLocale, rfc822DateFormat)
 import System.Log.Logger (Priority(DEBUG), logM)
 import System.Time (CalendarTime, formatCalendarTime, toCalendarTime, toUTCTime)
@@ -216,13 +216,12 @@
                  -> FilePath -- ^ path to file on disk
                  -> m Response
 filePathSendFile contentType fp =
-    do handle  <- liftIO $ openBinaryFile fp ReadMode -- garbage collection should close this
+    do count   <- liftIO $ withBinaryFile fp ReadMode hFileSize -- garbage collection should close this
        modtime <- liftIO $ getModificationTime fp
-       count   <- liftIO $ hFileSize handle
        rq      <- askRq
        return $ sendFileResponse contentType fp (Just (toUTCTime modtime, rq)) 0 count
 
--- | Send the specified file with the specified mime-type using Lazy ByteStrings
+-- | Send the specified file with the specified mime-type using lazy ByteStrings
 --
 -- NOTE: assumes file exists and is readable by the server. See 'serveFileUsing'.
 --
@@ -232,14 +231,14 @@
                  -> FilePath -- ^ path to file on disk
                  -> m Response
 filePathLazy contentType fp =
-    do handle  <- liftIO $ openBinaryFile fp ReadMode -- garbage collection should close this
+    do handle   <- liftIO $ openBinaryFile fp ReadMode -- garbage collection should close this
        contents <- liftIO $ L.hGetContents handle
        modtime  <- liftIO $ getModificationTime fp
        count    <- liftIO $ hFileSize handle
        rq       <- askRq
        return $ lazyByteStringResponse contentType contents (Just (toUTCTime modtime, rq)) 0 count
 
--- | Send the specified file with the specified mime-type using Lazy ByteStrings
+-- | Send the specified file with the specified mime-type using strict ByteStrings
 --
 -- NOTE: assumes file exists and is readable by the server. See 'serveFileUsing'.
 --
@@ -251,7 +250,7 @@
 filePathStrict contentType fp =
     do contents <- liftIO $ S.readFile fp
        modtime  <- liftIO $ getModificationTime fp
-       count    <- liftIO $ bracket (openBinaryFile fp ReadMode) hClose hFileSize
+       count    <- liftIO $ withBinaryFile fp ReadMode hFileSize
        rq       <- askRq
        return $ strictByteStringResponse contentType contents (Just (toUTCTime modtime, rq)) 0 count
 
