diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,12 @@
+Version 0.7.2.1 released 20 Mar 2010
+
+* Version bump to 0.7.2.1, depend on pandoc < 1.5.
+
+* Use charset=utf-8 on output from Layout.
+
+* Use isUnescapedInURI with escapeURIString rather than isAllowedInURI.
+  The latter does not escape % signs.
+
 Version 0.7.2 released 02 Jan 2010
 
 * Now compiles with GHC 6.12.
diff --git a/Network/Gitit/ContentTransformer.hs b/Network/Gitit/ContentTransformer.hs
--- a/Network/Gitit/ContentTransformer.hs
+++ b/Network/Gitit/ContentTransformer.hs
@@ -88,7 +88,7 @@
 import System.FilePath
 import Control.Monad.State
 import Control.Exception (throwIO, catch)
-import Network.URI (isAllowedInURI, escapeURIString)
+import Network.URI (isUnescapedInURI, escapeURIString)
 import qualified Data.ByteString as S (concat) 
 import qualified Data.ByteString.Lazy as L (toChunks, fromChunks)
 import Text.XML.Light
@@ -532,7 +532,7 @@
 
 -- | Derives a URL from a list of Pandoc Inline elements.
 inlinesToURL :: [Inline] -> String
-inlinesToURL = escapeURIString isAllowedInURI  . encodeString . inlinesToString
+inlinesToURL = escapeURIString isUnescapedInURI  . encodeString . inlinesToString
 
 -- | Convert a list of inlines into a string.
 inlinesToString :: [Inline] -> String
diff --git a/Network/Gitit/Feed.hs b/Network/Gitit/Feed.hs
--- a/Network/Gitit/Feed.hs
+++ b/Network/Gitit/Feed.hs
@@ -26,7 +26,7 @@
 import Data.DateTime
 import Data.List (intercalate, sortBy)
 import Data.Ord (comparing)
-import Network.URI (isAllowedInURI, escapeURIString)
+import Network.URI (isUnescapedInURI, escapeURIString)
 import System.FilePath
 
 import Data.FileStore.Types
@@ -151,7 +151,7 @@
                         else f
 
 escape :: String -> String
-escape = escapeURIString isAllowedInURI
+escape = escapeURIString isUnescapedInURI
 
 formatFeedTime :: DateTime -> String
 formatFeedTime = formatDateTime "%Y-%m%--%dT%TZ"  -- Why the double hyphen between %m and %d? It works.
diff --git a/Network/Gitit/Layout.hs b/Network/Gitit/Layout.hs
--- a/Network/Gitit/Layout.hs
+++ b/Network/Gitit/Layout.hs
@@ -99,7 +99,7 @@
                    T.setAttribute "usecache" (useCache cfg) .
                    T.setAttribute "content" (renderHtmlFragment htmlContents) $
                    templ
-  ok $ setContentType "text/html" $ toResponse filledTemp
+  ok $ setContentType "text/html; charset=utf-8" $ toResponse filledTemp
 
 exportBox :: String -> String -> Maybe String -> Html
 exportBox base' page rev | not (isSourceCode page) =
diff --git a/gitit.cabal b/gitit.cabal
--- a/gitit.cabal
+++ b/gitit.cabal
@@ -1,5 +1,5 @@
 name:                gitit
-version:             0.7.2
+version:             0.7.2.1
 Cabal-version:       >= 1.2
 build-type:          Simple
 synopsis:            Wiki using happstack, git or darcs, and pandoc.
@@ -98,7 +98,7 @@
     exposed-modules: Network.Gitit.Interface
     build-depends:   ghc, ghc-paths
     cpp-options:     -D_PLUGINS
-  build-depends:     base >= 3, pandoc >= 1.4, filepath, safe
+  build-depends:     base >= 3, pandoc >= 1.4 && < 1.5, filepath, safe
   extensions:        CPP
   if impl(ghc >= 6.12)
     ghc-options:     -Wall -fno-warn-unused-do-bind
