diff --git a/debian-build.cabal b/debian-build.cabal
--- a/debian-build.cabal
+++ b/debian-build.cabal
@@ -1,5 +1,5 @@
 name:                debian-build
-version:             0.4.1.0
+version:             0.5.0.0
 synopsis:            Debian package build sequence tools
 description:         This package provides build sequence functions
                      for debian package, and includes on-the-fly
diff --git a/mains/odebuild.hs b/mains/odebuild.hs
--- a/mains/odebuild.hs
+++ b/mains/odebuild.hs
@@ -4,8 +4,8 @@
 
 import Debian.Package.Data (Source, Hackage, isBinaryChanges)
 import Debian.Package.Build
-  (BuildMode (Dep, Indep, Src), buildPackage, debi',
-   baseDirCurrent, defaultConfig, Build, runBuild, liftTrace,
+  (BuildMode (Dep, Indep, Src), buildPackage, debi', pwd,
+   defaultConfig, Build, runBuild, liftTrace,
    removeBuildDir, findDebianChanges, genSources, removeGhcLibrary)
 
 
@@ -64,7 +64,9 @@
   install'
 
 run :: Build a -> IO a
-run b = uncurry (runBuild b baseDirCurrent) defaultConfig
+run b = do
+  cur <- pwd
+  uncurry (runBuild b cur) defaultConfig
 
 parseArgs :: [String] -> (Maybe String, [String])
 parseArgs =  d where
diff --git a/src/Debian/Package/Build/Monad.hs b/src/Debian/Package/Build/Monad.hs
--- a/src/Debian/Package/Build/Monad.hs
+++ b/src/Debian/Package/Build/Monad.hs
@@ -12,7 +12,7 @@
        ( Trace, runTrace, traceCommand, traceOut, putLog
        , bracketTrace, bracketTrace_
 
-       , BaseDir, baseDirCurrent, baseDirSpecify
+       , BaseDir
 
        , askBaseDir, askBuildDir
 
@@ -26,7 +26,6 @@
 
 import System.FilePath ((</>))
 import System.IO (hPutStrLn, hFlush, stderr, stdout)
-import Data.Maybe (fromMaybe)
 import Control.Applicative ((<$>))
 import Control.Monad (when)
 import Control.Monad.Trans.Class (lift)
@@ -98,15 +97,7 @@
   hFlush fh
 
 -- | Type to specify base directory filepath
-newtype BaseDir = BaseDir { unBaseDir :: Maybe FilePath }
-
--- | Use current directory as base directory
-baseDirCurrent :: BaseDir
-baseDirCurrent =  BaseDir Nothing
-
--- | Use specified directory as base directory
-baseDirSpecify :: FilePath -> BaseDir
-baseDirSpecify =  BaseDir . Just
+type BaseDir = FilePath
 
 -- | Type to specify build working directory
 newtype BuildDir = BuildDir (Either FilePath FilePath)
@@ -166,15 +157,15 @@
 bracketBuild_ =  toBracket_ bracketBuild
 
 -- | Get base directory in 'Build' monad
-askBaseDir :: FilePath -> Build FilePath
-askBaseDir cur = fromMaybe cur . unBaseDir <$> ask
+askBaseDir :: Build FilePath
+askBaseDir =  ask
 
 -- | Get build configuration in 'Build' monad
 askConfig :: Build Config
 askConfig =  lift ask
 
 -- | Get build working directory in 'Build' monad
-askBuildDir :: FilePath -> Build FilePath
-askBuildDir cur = do
+askBuildDir :: Build FilePath
+askBuildDir =  do
   bd <- buildDir <$> askConfig
-  (`unBuildDir` bd) <$> askBaseDir cur
+  (`unBuildDir` bd) <$> askBaseDir
diff --git a/src/Debian/Package/Build/Sequence.hs b/src/Debian/Package/Build/Sequence.hs
--- a/src/Debian/Package/Build/Sequence.hs
+++ b/src/Debian/Package/Build/Sequence.hs
@@ -58,19 +58,15 @@
     (liftTrace $ chdir saveDir)
     act
 
--- Take base-directory from 'Build' action context.
-getBaseDir :: Build FilePath
-getBaseDir =  liftIO pwd >>= askBaseDir
-
 -- | Run 'Build' action under base-directory.
 withBaseCurrentDir :: Build a -> Build a
 withBaseCurrentDir act = do
-  baseDir <- getBaseDir
+  baseDir <- askBaseDir
   withCurrentDir baseDir act
 
 -- | Take build-directory from 'Build' action context.
 getBuildDir :: Build FilePath
-getBuildDir =  liftIO pwd >>= askBuildDir
+getBuildDir =  askBuildDir
 
 -- Pass build-directory to 'Build' action.
 withBuildDir :: (FilePath -> Build a) -> Build a
@@ -107,7 +103,7 @@
 copyDebianDir :: FilePath -> Build ()
 copyDebianDir srcDir = do
   debDN       <- debianDirName'
-  baseDir     <- getBaseDir
+  baseDir     <- askBaseDir
   liftTrace $ rawSystem' ["cp", "-a", baseDir </> debDN, srcDir </> "."]
 
 
@@ -116,7 +112,7 @@
 rsyncGenOrigSourceDir pkg = do
   srcDir   <- sourceDir pkg
   debDN    <- debianDirName'
-  baseDir  <- getBaseDir
+  baseDir  <- askBaseDir
   bldDir   <- getBuildDir
   confEXs  <- sourceExcludes <$> askConfig
   let excludes = [takeFileName d
@@ -164,7 +160,7 @@
 cabalGenArchive :: Hackage -> Build FilePath
 cabalGenArchive hkg = do
   withBaseCurrentDir . liftTrace $ Cabal.sdist []
-  baseDir <- getBaseDir
+  baseDir <- askBaseDir
   let apath = baseDir </> hackageArchive hkg
   liftTrace $ confirmPath apath
   return apath
@@ -201,7 +197,7 @@
 
 cabalAutogenDebianDir :: Maybe String -> Build FilePath
 cabalAutogenDebianDir mayRev =  do
-  baseDir  <-  getBaseDir
+  baseDir  <-  askBaseDir
   let ddName =  "debian"
       tmpDD  =  baseDir </> ddName
   exist <- liftIO $ doesDirectoryExist tmpDD
@@ -227,7 +223,7 @@
 
 findDebianChangeLog :: MaybeT Build FilePath
 findDebianChangeLog =  MaybeT $ do
-  baseDir  <-  getBaseDir
+  baseDir  <-  askBaseDir
   debDN    <-  debianDirName'
   let changelog = baseDir </> debDN </> "changelog"
   liftIO $ do
@@ -248,7 +244,7 @@
     ]
 
 findCabalDescription :: MaybeT Build FilePath
-findCabalDescription =  MaybeT (getBaseDir >>= liftIO . Cabal.findDescriptionFile)
+findCabalDescription =  MaybeT (askBaseDir >>= liftIO . Cabal.findDescriptionFile)
 
 -- | On the fly setup of source directory and archive.
 genSources :: Maybe String -> Build (Maybe ((FilePath, FilePath), Source, Maybe Hackage))
