diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -9,7 +9,7 @@
 TESTDIR   := tests
 BUILDDIR  := dist
 BUILDCONF := .setup-config
-BUILDCMD  := runhaskell Setup.hs
+BUILDCMD  := ./setup
 BUILDVARS := vars
 CONFIGURE := configure
 
@@ -118,9 +118,10 @@
 	@$(generate-shell-script)
 
 .PHONY: configure
-cleanup_files+=$(BUILDDIR) $(BUILDCONF) $(BUILDVARS)
+cleanup_files+=Setup.hi Setup.o $(BUILDCMD) $(BUILDVARS)
 configure: $(BUILDCONF) templates
 $(BUILDCONF): $(CABAL)
+	ghc -package Cabal Setup.hs -o $(BUILDCMD)
 	$(BUILDCMD) configure --prefix=$(PREFIX)
 	# Make configuration time settings persistent (definitely a hack).
 	@echo "PREFIX?=$(PREFIX)" >$(BUILDVARS)
diff --git a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,28 @@
+pandoc (0.44) unstable; urgency=low
+
+  [ John MacFarlane ]
+
+  * Fixed bug in HTML writer:  when --toc was used, anchors were put around
+    headers, which is invalid XHTML (block content within inline element).
+    Now the anchors are put inside the header tags.  Resolves Issue #23.
+
+  * Added xmlns attribute to html element in html writer tests.
+    This attribute is added by more recent versions of the
+    xhtml library (>= 3000), and is required for valid XHTML.
+
+  [ Recai Oktaş ]
+
+  * On configure, compile 'Setup.hs' to 'setup' and use 'setup' as the build
+    command instead of 'runhaskell', which, on some platforms (such as s390,
+    alpha, m68k), throws the following error:
+
+        runhaskell Setup.hs configure --prefix=/usr
+        ghc-6.6.1: not built for interactive use
+
+    This causes a serious FTBFS bug.  Closes: #440668.
+
+ -- Recai Oktaş <roktas@debian.org>  Mon, 03 Sep 2007 18:24:02 +0300
+
 pandoc (0.43) unstable; urgency=low
 
   [ John MacFarlane ]
diff --git a/pandoc.cabal b/pandoc.cabal
--- a/pandoc.cabal
+++ b/pandoc.cabal
@@ -1,5 +1,5 @@
 Name:            pandoc
-Version:         0.43
+Version:         0.44
 License:         GPL
 License-File:    COPYING
 Copyright:       (c) 2006-2007 John MacFarlane
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -43,7 +43,7 @@
 import Control.Monad ( (>>=) )
 
 version :: String
-version = "0.43"
+version = "0.44"
 
 copyrightMessage :: String
 copyrightMessage = "\nCopyright (C) 2006-7 John MacFarlane\n\
diff --git a/src/Text/Pandoc/Writers/HTML.hs b/src/Text/Pandoc/Writers/HTML.hs
--- a/src/Text/Pandoc/Writers/HTML.hs
+++ b/src/Text/Pandoc/Writers/HTML.hs
@@ -274,17 +274,17 @@
   let attribs = if writerStrictMarkdown opts && not (writerTableOfContents opts)
                    then []
                    else [identifier id]
-  let headerHtml = case level of
-              1 -> h1 contents ! attribs
-              2 -> h2 contents ! attribs
-              3 -> h3 contents ! attribs
-              4 -> h4 contents ! attribs
-              5 -> h5 contents ! attribs
-              6 -> h6 contents ! attribs
-              _ -> paragraph contents ! attribs
-  return $ if writerTableOfContents opts
-              then anchor ! [href ("#TOC-" ++ id)] $ headerHtml
-              else headerHtml
+  let contents'  = if writerTableOfContents opts
+                      then anchor ! [href ("#TOC-" ++ id)] $ contents
+                      else contents
+  return $ case level of
+              1 -> h1 contents' ! attribs
+              2 -> h2 contents' ! attribs
+              3 -> h3 contents' ! attribs
+              4 -> h4 contents' ! attribs
+              5 -> h5 contents' ! attribs
+              6 -> h6 contents' ! attribs
+              _ -> paragraph contents' ! attribs
 blockToHtml opts (BulletList lst) = do
   contents <- mapM (blockListToHtml opts) lst
   let attribs = if writerIncremental opts
diff --git a/tests/s5.basic.html b/tests/s5.basic.html
--- a/tests/s5.basic.html
+++ b/tests/s5.basic.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html
+<html xmlns="http://www.w3.org/1999/xhtml"
 ><head
   ><title
     >My S5 Document</title
diff --git a/tests/s5.fancy.html b/tests/s5.fancy.html
--- a/tests/s5.fancy.html
+++ b/tests/s5.fancy.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html
+<html xmlns="http://www.w3.org/1999/xhtml"
 ><head
   ><title
     >My S5 Document</title
diff --git a/tests/s5.inserts.html b/tests/s5.inserts.html
--- a/tests/s5.inserts.html
+++ b/tests/s5.inserts.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html
+<html xmlns="http://www.w3.org/1999/xhtml"
 ><head
   ><title
     >My S5 Document</title
diff --git a/tests/writer.html b/tests/writer.html
--- a/tests/writer.html
+++ b/tests/writer.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html
+<html xmlns="http://www.w3.org/1999/xhtml"
 ><head
   ><title
     >Pandoc Test Suite</title
diff --git a/web/index.txt.in b/web/index.txt.in
--- a/web/index.txt.in
+++ b/web/index.txt.in
@@ -59,6 +59,7 @@
 For installation instructions for all architectures, see
 [INSTALL](INSTALL.html).  Note that pandoc is in the [MacPorts],
 [Debian unstable], and [FreeBSD ports] repositories.
+Abhishek Dasgupta has also contributed an [Arch linux PKGBUILD script].
 
 - [Source tarball]
 - [Windows binary package]
@@ -83,6 +84,15 @@
 
 # News
 
+-   Version 0.44 released (September 3, 2007).
+
+    + Fixed bug in HTML writer:  when `--toc` was used, anchors were put around
+      headers, which is invalid XHTML (block content within inline element).
+      Now the anchors are put inside the header tags.  Resolves Issue #23.
+    + Changed build process to compile `Setup.hs` instead of using
+      `runhaskell`, which throws an error on platforms where GHC is
+      "not built for interactive use".  Closes Debian #440668.
+
 -   Version 0.43 released (September 2, 2007).
 
     + HUGE increase in performance:  markdown is parsed five times
@@ -174,6 +184,7 @@
 [Windows binary package]: http://code.google.com/p/pandoc/downloads/detail?name=pandoc-@VERSION@.zip "Download Windows zip file from Pandoc's Google Code site"
 [Debian unstable]: http://packages.debian.org/unstable/text/pandoc
 [FreeBSD ports]: http://www.freshports.org/textproc/pandoc/
+[Arch linux PKGBUILD script]: http://aur.archlinux.org/packages.php?do_Details=1&ID=12751&O=0&L=0&C=0&K=pandoc&SB=n&SO=a&PP=25&do_MyPackages=0&do_Orphans=0&SeB=nd
 [MacPorts]: http://www.macports.org/
 [pandoc-announce]: http://groups.google.com/group/pandoc-announce
 [pandoc-discuss]: http://groups.google.com/group/pandoc-discuss
diff --git a/web/pandoc.css b/web/pandoc.css
--- a/web/pandoc.css
+++ b/web/pandoc.css
@@ -21,6 +21,10 @@
     font-family: monospace;
     font-size: 110%;
 }
+h1 a, h2 a, h3 a, h4 a, h5 a { 
+    text-decoration: none;
+    color: #7a5ada; 
+}
 h1, h2, h3, h4, h5 { font-family: verdana;
                      font-weight: bold;
                      border-bottom: 1px dotted black;
