diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -14,3 +14,7 @@
 
 * Add `filenames` function.
 
+0.0.5
+
+* Fix `getFoscamDirectoryContents` to include directory.
+
diff --git a/foscam-directory.cabal b/foscam-directory.cabal
--- a/foscam-directory.cabal
+++ b/foscam-directory.cabal
@@ -1,5 +1,5 @@
 name:               foscam-directory
-version:            0.0.4
+version:            0.0.5
 license:            BSD3
 license-file:       LICENSE
 author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ> <dibblego>
diff --git a/src/Data/Foscam/Directory.hs b/src/Data/Foscam/Directory.hs
--- a/src/Data/Foscam/Directory.hs
+++ b/src/Data/Foscam/Directory.hs
@@ -6,7 +6,7 @@
 , filenames
 ) where
 
-import Control.Category((.), id)
+import Control.Category(id)
 import Data.ByteString.UTF8 as UTF8(fromString)
 import Data.Eq(Eq)
 import Data.Foscam.File.Filename(Filename, filename)
@@ -21,23 +21,22 @@
 
 data FoscamDirectoryFile =
   Isn't FilePath
-  | Is Filename
+  | Is FilePath Filename
   deriving (Eq, Ord, Show)
 
 getFoscamDirectoryContents ::
   FilePath
   -> IO [FoscamDirectoryFile]
 getFoscamDirectoryContents p =
-  let fromResult (Success n) =
-        Is n
-      fromResult (Failure _) =
-        Isn't p
-  in fmap (fromResult . parseString filename (Directed (UTF8.fromString p) 0 0 0 0)) <$> getDirectoryContents p
+  (fmap (\f -> 
+    case parseString filename (Directed (UTF8.fromString p) 0 0 0 0) f of
+      Success n -> Is p n
+      Failure _ -> Isn't f)) <$> getDirectoryContents p
 
 filenames ::
   [FoscamDirectoryFile]
-  -> [Filename]
+  -> [(FilePath, Filename)]
 filenames =
   foldr (\f -> case f of
                  Isn't _ -> id
-                 Is n -> (n:)) []
+                 Is p n -> ((p,n):)) []
