diff --git a/Yst/Data.hs b/Yst/Data.hs
--- a/Yst/Data.hs
+++ b/Yst/Data.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE FlexibleContexts #-}
-{-# OPTIONS_GHC -fno-warn-unused-do-bind #-}
 {-
 Copyright (C) 2009 John MacFarlane <jgm@berkeley.edu>
 
@@ -29,14 +28,14 @@
 import Data.Maybe (fromMaybe)
 import Data.List (sortBy, nub, isPrefixOf)
 import Text.ParserCombinators.Parsec
-import System.FilePath (takeExtension)
+import System.FilePath (takeExtension, (</>))
 
-getData :: DataSpec -> IO Node
-getData (DataFromFile file opts) = do
-  raw <- catch (readDataFile file)
+getData :: Site -> DataSpec -> IO Node
+getData site (DataFromFile file opts) = do
+  raw <- catch (readDataFile $  dataDir site </> file)
           (\e -> errorExit 15 ("Error reading data from " ++ file ++ ": " ++ show e) >> return undefined)
   return $ foldl applyDataOption raw opts
-getData (DataConstant n) = return n
+getData _ (DataConstant n) = return n
 
 readDataFile :: FilePath -> IO Node
 readDataFile f =
diff --git a/Yst/Render.hs b/Yst/Render.hs
--- a/Yst/Render.hs
+++ b/Yst/Render.hs
@@ -105,8 +105,8 @@
   let menuHtml = renderNav (pageUrl page) (navigation site)
   let layout = fromMaybe (defaultLayout site) $ layoutFile page
   srcDir <- canonicalizePath $ sourceDir site
-  g <- directoryGroup srcDir
-  attrs <- forM (pageData page) $ \(k, v) -> getData v >>= \n -> return (k,n)
+  g <- directoryGroupRecursive srcDir
+  attrs <- forM (pageData page) $ \(k, v) -> getData site v >>= \n -> return (k,n)
   todaysDate <- liftM utctDay getCurrentTime
   rawContents <-
     case sourceFile page of
diff --git a/yst.cabal b/yst.cabal
--- a/yst.cabal
+++ b/yst.cabal
@@ -1,5 +1,5 @@
 name:                yst
-version:             0.2.2.1
+version:             0.2.3
 Tested-With:         GHC == 6.10.4, GHC == 6.12.1
 Cabal-version:       >= 1.2
 build-type:          Simple
@@ -52,5 +52,8 @@
                      old-locale, old-time, parsec, xhtml, pandoc, bytestring,
                      split
   extensions:        CPP
-  ghc-options:       -Wall -threaded -fno-warn-orphans
+  if impl(ghc >= 6.12)
+    ghc-options:     -Wall -threaded -fno-warn-orphans -fno-warn-unused-do-bind
+  else
+    ghc-options:     -Wall -threaded -fno-warn-orphans
   ghc-prof-options:  -auto-all -caf-all
