diff --git a/Network/Wai/Middleware/Static.hs b/Network/Wai/Middleware/Static.hs
--- a/Network/Wai/Middleware/Static.hs
+++ b/Network/Wai/Middleware/Static.hs
@@ -6,12 +6,14 @@
 import Data.List (isInfixOf)
 import qualified Data.Map as M
 import Data.Maybe (fromMaybe)
+import Data.Monoid (mconcat)
 import qualified Data.ByteString as B
+import qualified Data.ByteString.Lazy.Char8 as BL
 import qualified Data.Text as T
 import qualified Data.Text.Encoding as E
 
 import qualified Filesystem.Path.CurrentOS as F
-import Network.HTTP.Types (status200)
+import Network.HTTP.Types (status200, status404)
 import System.Directory (doesFileExist)
 
 import Network.Wai
@@ -41,7 +43,11 @@
 staticList :: [(T.Text, T.Text)] -> Middleware
 staticList fs app req =
     maybe (app req)
-          (\fp -> return $ ResponseFile status200 [("Content-Type", getMimeType (F.fromText fp))] (T.unpack fp) Nothing)
+          (\fp -> do let fStr = T.unpack fp
+                     exists <- liftIO $ doesFileExist fStr
+                     if exists
+                        then return $ ResponseFile status200 [("Content-Type", getMimeType (F.fromText fp))] fStr Nothing
+                        else return $ responseLBS status404 [("Content-Type", "text/plain")] $ mconcat ["404: ", BL.pack fStr, " not found."])
           ((lookup p fs) `mplus` (lookup (T.cons '/' p) fs)) -- try without and with leading slash
     where p = (T.intercalate "/" $ pathInfo req)
 
diff --git a/wai-middleware-static.cabal b/wai-middleware-static.cabal
--- a/wai-middleware-static.cabal
+++ b/wai-middleware-static.cabal
@@ -1,5 +1,5 @@
 Name:                wai-middleware-static
-Version:             0.1.1
+Version:             0.1.2
 Synopsis:            WAI middleware that intercepts requests to static files.
 Homepage:            https://github.com/xich/scotty
 Bug-reports:         https://github.com/xich/scotty/issues
