diff --git a/templates b/templates
index 951b0ca03..bcd7edc49 160000
--- a/templates
+++ b/templates
@@ -1 +1 @@
-Subproject commit 951b0ca035245e29a09a64056fe3aaae1c679cd3
+Subproject commit bcd7edc492e144476f681a9823a459ca0293e672
diff --git a/tests/lhs-test.latex b/tests/lhs-test.latex
index 647f16396..a3acd98da 100644
--- a/tests/lhs-test.latex
+++ b/tests/lhs-test.latex
@@ -13,7 +13,14 @@
     \usepackage[utf8x]{inputenc}
   \fi
 \fi
-\usepackage[breaklinks=true,unicode=true,pdfborder={0 0 0}]{hyperref}
+\ifXeTeX
+  \usepackage[setpagesize=false, % page size defined by xetex
+              unicode=false, % unicode breaks when used with xetex
+              xetex]{hyperref}
+\else
+  \usepackage[unicode=true]{hyperref}
+\fi
+\hypersetup{breaklinks=true, pdfborder={0 0 0}}
 \setlength{\parindent}{0pt}
 \setlength{\parskip}{6pt plus 2pt minus 1pt}
 \setlength{\emergencystretch}{3em}  % prevent overfull lines
diff --git a/tests/lhs-test.latex+lhs b/tests/lhs-test.latex+lhs
index 0cd3185db..94f8db9f7 100644
--- a/tests/lhs-test.latex+lhs
+++ b/tests/lhs-test.latex+lhs
@@ -15,7 +15,14 @@
 \fi
 \usepackage{listings}
 \lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
-\usepackage[breaklinks=true,unicode=true,pdfborder={0 0 0}]{hyperref}
+\ifXeTeX
+  \usepackage[setpagesize=false, % page size defined by xetex
+              unicode=false, % unicode breaks when used with xetex
+              xetex]{hyperref}
+\else
+  \usepackage[unicode=true]{hyperref}
+\fi
+\hypersetup{breaklinks=true, pdfborder={0 0 0}}
 \setlength{\parindent}{0pt}
 \setlength{\parskip}{6pt plus 2pt minus 1pt}
 \setlength{\emergencystretch}{3em}  % prevent overfull lines
diff --git a/tests/writer.latex b/tests/writer.latex
index 05f49f923..9ef8d8f33 100644
--- a/tests/writer.latex
+++ b/tests/writer.latex
@@ -32,7 +32,14 @@
 \makeatother
 \let\Oldincludegraphics\includegraphics
 \renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=\maxwidth]{#1}}
-\usepackage[breaklinks=true,unicode=true,pdfborder={0 0 0}]{hyperref}
+\ifXeTeX
+  \usepackage[setpagesize=false, % page size defined by xetex
+              unicode=false, % unicode breaks when used with xetex
+              xetex]{hyperref}
+\else
+  \usepackage[unicode=true]{hyperref}
+\fi
+\hypersetup{breaklinks=true, pdfborder={0 0 0}}
 \usepackage[normalem]{ulem}
 % avoid problems with \sout in headers with hyperref:
 \pdfstringdefDisableCommands{\renewcommand{\sout}{}}