diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -102,3 +102,5 @@
 1.0.4.5
 	* Added the compiler to the output returned for the command-line option "version".
 	* Specified compiler-option 'context-stack' in 'Main.hs', to account for call to printf.
+1.0.4.6
+	* Minimised the explicit size of compiler's 'context-stack' in 'Main.hs'.
diff --git a/changelog.Debian b/changelog.Debian
--- a/changelog.Debian
+++ b/changelog.Debian
@@ -15,3 +15,5 @@
   * Re-calculated "Installed-size".
 
  -- Alistair Ward <squeeze at functionalley dot eu>  Wed, 24 Jul 2013 12:00:00 +0000
+
+squeeze (1.0.4.6-1) experimental; urgency=low
diff --git a/debian/DEBIAN/control b/debian/DEBIAN/control
--- a/debian/DEBIAN/control
+++ b/debian/DEBIAN/control
@@ -1,5 +1,5 @@
 Package:	squeeze
-Version:	1.0.4.4-1
+Version:	1.0.4.6-1
 Section:	utils
 Priority:	optional
 #Architecture:	i386
diff --git a/squeeze.cabal b/squeeze.cabal
--- a/squeeze.cabal
+++ b/squeeze.cabal
@@ -1,6 +1,6 @@
 -- Package-properties
 Name:			squeeze
-Version:		1.0.4.5
+Version:		1.0.4.6
 Cabal-Version:		>= 1.6
 Copyright:		(C) 2010-2015 Dr. Alistair Ward
 License:		GPL
@@ -53,8 +53,7 @@
         mtl,
         QuickCheck >= 2.4,
         random,
-        toolshed >= 0.14,
-        unix
+        toolshed >= 0.14
 
     GHC-options:	-Wall -O2 -fno-warn-tabs
 
diff --git a/squeeze.spec b/squeeze.spec
--- a/squeeze.spec
+++ b/squeeze.spec
@@ -22,7 +22,7 @@
 
 Summary:	Finds the optimal subset of the specified files, to fit into a limited space, with minimal wastage
 Name:		squeeze
-Version:	1.0.4.4
+Version:	1.0.4.6
 Release:	1
 License:	GPLv3
 #From '/usr/share/doc/packages/rpm/GROUPS'.
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -1,4 +1,4 @@
-{-# OPTIONS_GHC -fcontext-stack=32 #-}
+{-# OPTIONS_GHC -fcontext-stack=23 #-}
 {-
 	Copyright (C) 2010-2015 Dr. Alistair Ward
 
diff --git a/src/Squeeze/Data/File.hs b/src/Squeeze/Data/File.hs
--- a/src/Squeeze/Data/File.hs
+++ b/src/Squeeze/Data/File.hs
@@ -53,7 +53,6 @@
 import qualified	System.Directory
 import			System.FilePath((</>))
 import qualified	System.IO
-import qualified	System.Posix.Files
 import qualified	ToolShed.Data.Foldable
 
 -- | A type suitable for containing an arbitrary set of file-paths.
@@ -92,15 +91,15 @@
 -}
 expandDirectory :: System.IO.FilePath -> IO FilePathList
 expandDirectory filePath	= do
-	stat	<- System.Posix.Files.getFileStatus filePath	-- CAVEAT: throws if the user is unauthorised, or the file is non-existent.
+	directoryExists	<- System.Directory.doesDirectoryExist filePath
 
-	if System.Posix.Files.isDirectory stat
+	if directoryExists
 		then System.Directory.getDirectoryContents filePath >>= fmap concat . mapM (
 			expandDirectory {-recurse-} . (filePath </>) {-qualify the path-}
 		) . filter (
 			`notElem` [".", ".."]	-- Prevent infinite recursion.
 		)
-		else {-non-directory-} return {-to IO-monad-} [filePath]	-- CAVEAT: this could include devices, pipes, sockets, symlinks ...
+		else {-non-directory-} return {-to IO-monad-} [filePath]	-- CAVEAT: this could include non-existent paths, devices, pipes, sockets, symlinks ...
 
 {- |
 	* Finds any file-paths which have been specified more than once.
