diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,8 @@
+0.1.1.0 (23 June 2013)
+----------------------
+
+  * Add -d option for specifying dist dir
+
 0.1.0.1 (27 March 2013)
 -----------------------
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -166,6 +166,11 @@
 * `-o`, `--outputdir`: This is the directory into which the final
   output images will be produced.  The default is `diagrams`.
 
+* `-d`, `--distdir`: When building diagrams for a cabal package, this
+  is the directory in which `diagrams-haddock` should look for the
+  `setup-config` file (*i.e.* the output of `cabal configure`).  The
+  default is `dist`.
+
 * `-i`, `--includedirs`: `diagrams-haddock` does its best to process
   files with CPP directives, even extracting information about where
   to find `#include`s from the `.cabal` file, but sometimes it might
diff --git a/diagrams-haddock.cabal b/diagrams-haddock.cabal
--- a/diagrams-haddock.cabal
+++ b/diagrams-haddock.cabal
@@ -1,5 +1,5 @@
 name:                diagrams-haddock
-version:             0.1.0.1
+version:             0.1.1.0
 synopsis:            Preprocessor for embedding diagrams in Haddock documentation
 description:         diagrams-haddock is a tool for compiling embedded inline
                      diagrams code in Haddock documentation, for an
diff --git a/tools/diagrams-haddock.hs b/tools/diagrams-haddock.hs
--- a/tools/diagrams-haddock.hs
+++ b/tools/diagrams-haddock.hs
@@ -24,6 +24,7 @@
   { quiet       :: Bool
   , cacheDir    :: FilePath
   , outputDir   :: FilePath
+  , distDir     :: FilePath
   , includeDirs :: [FilePath]
   , cppDefines  :: [String]
   , targets     :: [FilePath]
@@ -46,6 +47,11 @@
       &= typDir
       &= help "Directory to output compiled diagrams (default: diagrams)"
 
+  , distDir
+    = "dist"
+      &= typDir
+      &= help "Directory in which to look for setup-config (default: dist)"
+
   , includeDirs
     = []
       &= typDir
@@ -96,10 +102,10 @@
 --   or any unexported modules.
 processCabalPackage :: DiagramsHaddock -> FilePath -> IO ()
 processCabalPackage opts dir = do
-  mlbi <- maybeGetPersistBuildConfig distDir
+  mlbi <- maybeGetPersistBuildConfig fullDistDir
   case mlbi of
     Nothing -> putStrLn $
-      "No setup-config found in " ++ distDir ++ ", please run 'cabal configure' first."
+      "No setup-config found in " ++ fullDistDir ++ ", please run 'cabal configure' first."
     Just lbi -> do
       let mlib = P.library . localPkgDescr $ lbi
       case mlib of
@@ -115,7 +121,7 @@
               cabalDefines = parseCabalDefines defines
           mapM_ (tryProcessFile opts' cabalDefines dir srcDirs) . map toFilePath . P.exposedModules $ lib
 
-  where distDir = dir </> "dist"
+  where fullDistDir = dir </> distDir opts
 
 -- | Use @cpphs@'s options parser to handle the options from cabal.
 parseCabalDefines :: [String] -> [(String,String)]
