diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -9,6 +9,7 @@
 import Distribution.Simple.InstallDirs (mandir, bindir, CopyDest (NoCopyDest))
 import Distribution.Simple.Utils (copyFiles)
 import Control.Exception ( bracket_ )
+import Control.Monad ( unless )
 import System.Process ( rawSystem, runCommand, waitForProcess )
 import System.FilePath ( (</>) )
 import System.Directory
@@ -50,11 +51,19 @@
 makeManPages :: Args -> BuildFlags -> PackageDescription -> LocalBuildInfo -> IO ()
 makeManPages _ flags _ _ = do
   let verbosity = fromFlag $ buildVerbosity flags
+  ds1 <- modifiedDependencies (manDir </> "man1" </> "pandoc.1")
+    ["README", manDir </> "man1" </> "pandoc.1.template"]
+  ds2 <- modifiedDependencies (manDir </> "man1" </> "markdown2pdf.1")
+    [manDir </> "man1" </> "markdown2pdf.1.md"]
+  ds3 <- modifiedDependencies (manDir </> "man5" </> "pandoc_markdown.5")
+    ["README", manDir </> "man5" </> "pandoc_markdown.5.template"]
   let cmd  = "runghc -package-conf=dist/package.conf.inplace MakeManPage.hs"
   let cmd' = if verbosity == silent
                 then cmd
                 else cmd ++ " --verbose"
-  runCommand cmd' >>= waitForProcess >>= exitWith
+  -- Don't run MakeManPage.hs unless we have to
+  unless (null ds1 && null ds2 && null ds3) $
+    runCommand cmd' >>= waitForProcess >>= exitWith
 
 manpages :: [FilePath]
 manpages = ["man1" </> "pandoc.1"
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,3 +1,11 @@
+pando (1.8.0.1)
+
+  * Revised Interact.hs so that it works with the CPP macros
+    in the UTF8 module.
+
+  * Revised Setup.hs so that we don't call MakeManPage.hs unless
+    the man pages are out of date.
+
 pandoc (1.8)
 
   [new features]
diff --git a/pandoc.cabal b/pandoc.cabal
--- a/pandoc.cabal
+++ b/pandoc.cabal
@@ -1,5 +1,5 @@
 Name:            pandoc
-Version:         1.8
+Version:         1.8.0.1
 Cabal-Version:   >= 1.6
 Build-Type:      Custom
 License:         GPL
