diff --git a/src/Text/Pandoc/Writers/Ms.hs b/src/Text/Pandoc/Writers/Ms.hs
index 4c6cc5a34..5fbc54543 100644
--- a/src/Text/Pandoc/Writers/Ms.hs
+++ b/src/Text/Pandoc/Writers/Ms.hs
@@ -29,16 +29,12 @@ Conversion of 'Pandoc' documents to groff ms format.
 
 TODO:
 
-[ ] is there a way to avoid the extra space between internal links
-    and following punctuation?
-    internal links followed by a space also cause bad formatting
-    (a line break)
-    but adding \c at the end of the link text doesn't seem to work
+[ ] external links
+    http://pipeline.lbl.gov/code/3rd_party/licenses.win/groff/1.19.2/pdf/pdfmark.pdf
 [ ] manually create TOC including internal links and pdf outline
     bookmarks?  See
     http://pipeline.lbl.gov/code/3rd_party/licenses.win/groff/1.19.2/pdf/pdfmark.pdf
 [ ] is there a better way to do strikeout?
-[ ] options for hyperlink rendering (currently footnote)
 [ ] tight/loose list distinction
 -}
 
@@ -250,7 +246,7 @@ blockToMs _ HorizontalRule = do
   return $ text ".HLINE"
 blockToMs opts (Header level (ident,classes,_) inlines) = do
   setFirstPara
-  contents <- inlineListToMs' opts inlines
+  contents <- inlineListToMs' opts $ map breakToSpace inlines
   let anchor = if null ident
                   then empty
                   else nowrap $
@@ -266,9 +262,9 @@ blockToMs opts (Header level (ident,classes,_) inlines) = do
                    then ".NH"
                    else ".SH"
   modify $ \st -> st{ stFirstPara = True }
-  return $ anchor $$
-           (text heading <> space <> text (show level)) $$
+  return $ (text heading <> space <> text (show level)) $$
            contents $$
+           anchor $$
            tocEntry
 blockToMs _ (CodeBlock _ str) = do
   setFirstPara
diff --git a/test/writer.ms b/test/writer.ms
index 55f354d22..cb526b24f 100644
--- a/test/writer.ms
+++ b/test/writer.ms
@@ -60,41 +60,41 @@ This is a set of tests for pandoc.
 Most of them are adapted from
 John Gruber's markdown test suite.
 .HLINE
-.pdfhref M "headers"
 .SH 1
 Headers
-.pdfhref M "level-2-with-an-embedded-link"
+.pdfhref M "headers"
 .SH 2
 Level 2 with an embedded link
-.pdfhref M "level-3-with-emphasis"
+.pdfhref M "level-2-with-an-embedded-link"
 .SH 3
 Level 3 with \f[I]emphasis\f[]
-.pdfhref M "level-4"
+.pdfhref M "level-3-with-emphasis"
 .SH 4
 Level 4
-.pdfhref M "level-5"
+.pdfhref M "level-4"
 .SH 5
 Level 5
-.pdfhref M "level-1"
+.pdfhref M "level-5"
 .SH 1
 Level 1
-.pdfhref M "level-2-with-emphasis"
+.pdfhref M "level-1"
 .SH 2
 Level 2 with \f[I]emphasis\f[]
-.pdfhref M "level-3"
+.pdfhref M "level-2-with-emphasis"
 .SH 3
 Level 3
+.pdfhref M "level-3"
 .LP
 with no blank line
-.pdfhref M "level-2"
 .SH 2
 Level 2
+.pdfhref M "level-2"
 .LP
 with no blank line
 .HLINE
-.pdfhref M "paragraphs"
 .SH 1
 Paragraphs
+.pdfhref M "paragraphs"
 .LP
 Here's a regular paragraph.
 .PP
@@ -113,9 +113,9 @@ There should be a hard line break
 .br
 here.
 .HLINE
-.pdfhref M "block-quotes"
 .SH 1
 Block Quotes
+.pdfhref M "block-quotes"
 .LP
 E\-mail style:
 .RS
@@ -157,9 +157,9 @@ This should not be a block quote: 2
 .PP
 And a following paragraph.
 .HLINE
-.pdfhref M "code-blocks"
 .SH 1
 Code Blocks
+.pdfhref M "code-blocks"
 .LP
 Code:
 .IP
@@ -185,12 +185,12 @@ These\ should\ not\ be\ escaped:\ \ \\$\ \\\\\ \\>\ \\[\ \\{
 \f[]
 .fi
 .HLINE
-.pdfhref M "lists"
 .SH 1
 Lists
-.pdfhref M "unordered"
+.pdfhref M "lists"
 .SH 2
 Unordered
+.pdfhref M "unordered"
 .LP
 Asterisks tight:
 .IP \[bu] 2
@@ -239,9 +239,9 @@ Minus 1
 Minus 2
 .IP \[bu] 2
 Minus 3
-.pdfhref M "ordered"
 .SH 2
 Ordered
+.pdfhref M "ordered"
 .LP
 Tight:
 .IP "1." 3
@@ -289,9 +289,9 @@ back.
 Item 2.
 .IP "3." 3
 Item 3.
-.pdfhref M "nested"
 .SH 2
 Nested
+.pdfhref M "nested"
 .IP \[bu] 2
 Tab
 .RS 2
@@ -334,9 +334,9 @@ Foe
 .RE
 .IP "3." 3
 Third
-.pdfhref M "tabs-and-spaces"
 .SH 2
 Tabs and spaces
+.pdfhref M "tabs-and-spaces"
 .IP \[bu] 2
 this is a list item
 indented with tabs
@@ -351,9 +351,9 @@ indented with tabs
 this is an example list item
 indented with spaces
 .RE
-.pdfhref M "fancy-list-markers"
 .SH 2
 Fancy list markers
+.pdfhref M "fancy-list-markers"
 .IP "(2)" 4
 begins with 2
 .IP "(3)" 4
@@ -407,9 +407,9 @@ M.A.\ 2007
 B.
 Williams
 .HLINE
-.pdfhref M "definition-lists"
 .SH 1
 Definition Lists
+.pdfhref M "definition-lists"
 .LP
 Tight using spaces:
 .IP "apple"
@@ -524,9 +524,9 @@ sublist
 .IP "2." 3
 sublist
 .RE
-.pdfhref M "html-blocks"
 .SH 1
 HTML Blocks
+.pdfhref M "html-blocks"
 .LP
 Simple block on one line:
 foo
@@ -589,9 +589,9 @@ Code:
 .LP
 Hr's:
 .HLINE
-.pdfhref M "inline-markup"
 .SH 1
 Inline Markup
+.pdfhref M "inline-markup"
 .LP
 This is \f[I]emphasized\f[], and so \f[I]is this\f[].
 .PP
@@ -619,9 +619,9 @@ Subscripts: H\*<2\*>O, H\*<23\*>O, H\*<many\ of\ them\*>O.
 These should not be superscripts or subscripts,
 because of the unescaped spaces: a^b c^d, a~b c~d.
 .HLINE
-.pdfhref M "smart-quotes-ellipses-dashes"
 .SH 1
 Smart quotes, ellipses, dashes
+.pdfhref M "smart-quotes-ellipses-dashes"
 .LP
 \[lq]Hello,\[rq] said the spider.
 \[lq]`Shelob' is my name.\[rq]
@@ -645,9 +645,9 @@ Dashes between numbers: 5\[en]7, 255\[en]66, 1987\[en]1999.
 .PP
 Ellipses\&...and\&...and\&....
 .HLINE
-.pdfhref M "latex"
 .SH 1
 LaTeX
+.pdfhref M "latex"
 .IP \[bu] 2
 .IP \[bu] 2
 |2 + 2 = 4|
@@ -681,9 +681,9 @@ Escaped \f[C]$\f[]: $73 \f[I]this should be emphasized\f[] 23$.
 .LP
 Here's a LaTeX table:
 .HLINE
-.pdfhref M "special-characters"
 .SH 1
 Special Characters
+.pdfhref M "special-characters"
 .LP
 Here is some unicode:
 .IP \[bu] 2
@@ -739,12 +739,12 @@ Plus: +
 .PP
 Minus: \-
 .HLINE
-.pdfhref M "links"
 .SH 1
 Links
-.pdfhref M "explicit"
+.pdfhref M "links"
 .SH 2
 Explicit
+.pdfhref M "explicit"
 .LP
 Just a URL.
 .PP
@@ -766,9 +766,9 @@ mailto:nobody\@nowhere.net
 .FE
 .PP
 Empty.
-.pdfhref M "reference"
 .SH 2
 Reference
+.pdfhref M "reference"
 .LP
 Foo bar.
 .PP
@@ -797,9 +797,9 @@ This should [not][] be a link.
 Foo bar.
 .PP
 Foo biz.
-.pdfhref M "with-ampersands"
 .SH 2
 With ampersands
+.pdfhref M "with-ampersands"
 .LP
 Here's a link with an ampersand in the URL\**.
 .FS
@@ -814,9 +814,9 @@ http://att.com/
 Here's an inline link.
 .PP
 Here's an inline link in pointy braces.
-.pdfhref M "autolinks"
 .SH 2
 Autolinks
+.pdfhref M "autolinks"
 .LP
 With an ampersand: http://example.com/?foo=1&bar=2
 .IP \[bu] 2
@@ -840,9 +840,9 @@ or\ here:\ <http://example.com/>
 \f[]
 .fi
 .HLINE
-.pdfhref M "images"
 .SH 1
 Images
+.pdfhref M "images"
 .LP
 From \[lq]Voyage dans la Lune\[rq] by Georges Melies (1902):
 .PP
@@ -850,9 +850,9 @@ From \[lq]Voyage dans la Lune\[rq] by Georges Melies (1902):
 .PP
 Here is a movie [IMAGE: movie] icon.
 .HLINE
-.pdfhref M "footnotes"
 .SH 1
 Footnotes
+.pdfhref M "footnotes"
 .LP
 Here is a footnote reference,\**
 .FS