diff --git a/Network/OSM.hs b/Network/OSM.hs
--- a/Network/OSM.hs
+++ b/Network/OSM.hs
@@ -67,6 +67,7 @@
 import qualified Data.Text as T
 import Data.Time
 import Data.Typeable
+import System.Directory
 import Paths_osm_download
 import qualified Data.ByteString.Char8 as BC
 import qualified Data.Map as M
@@ -380,6 +381,7 @@
 -- and a cabal-generated directory for the cache directory
 defaultOSMConfig :: IO OSMConfig
 defaultOSMConfig = do
+  getDataDir >>= createDirectoryIfMissing True
   cache <- getDataFileName "TileCache"
   return $ OSMCfg osmTileURL (T.pack cache) Nothing 64 2 True
 
diff --git a/osm-download.cabal b/osm-download.cabal
--- a/osm-download.cabal
+++ b/osm-download.cabal
@@ -1,5 +1,5 @@
 Name:                osm-download
-Version:             0.3
+Version:             0.3.1
 Synopsis:            Download Open Street Map tiles
 Description:         Download and locally cache open street map tiles based on HTTP
                      cache control headers.
@@ -36,6 +36,7 @@
                      , text >= 0.11 && < 0.12
                      , monad-control >= 0.3 && < 0.4
                      , data-default >= 0.3 && < 0.4
+                     , directory >= 1.1 && < 1.2
   Other-modules:      Paths_osm_download 
   -- Extra tools (e.g. alex, hsc2hs, ...) needed to build the source.
   -- Build-tools:         
