--- a/compiler.xmlf
+++ b/compiler.xmlf
@@ -1,6 +1,10 @@
-<?xml version="1.0"?><!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1//EN" "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd">
-<book lang="en">
-<chapter label="7" id="The-compiler">
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book [
+<!ENTITY % eclent SYSTEM "ecl.ent">
+%eclent;
+]>
+<book xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
+<chapter label="7" xml:id="The-compiler">
 <title>The Compiler</title>
 <para>The &ECL; compiler translates a Lisp program stored in a source file into a C
 program, invokes the C compiler to compile the C program, and then generates an
@@ -31,7 +35,7 @@
 <para>has the same effects as <literal>(compile-file <replaceable>filename</replaceable>
 :c-file t :h-file t :data-file t)</literal>.</para>
 <blockquote>
-<screen><indexterm role="fn"><primary>compile-file</primary></indexterm>&mdash; Function: <function>compile-file</function> <varname>pathname &amp;key :output-file :verbose :print :c-file :h-file :data-file</varname></screen>
+<screen><indexterm role="fn"><primary>compile-file</primary></indexterm>&#151; Function: <function>compile-file</function> <varname>pathname &amp;key :output-file :verbose :print :c-file :h-file :data-file</varname></screen>
 <para><literal>compile-file</literal> compiles the Lisp program stored in the file specified by
 <replaceable>pathname</replaceable>, and generates a binary file.  If <replaceable>:verbose</replaceable> is true, a
 message indicating what file is being compiled is printed.  If <replaceable>:print</replaceable>
@@ -133,7 +137,7 @@
 </variablelist>
 </blockquote>
 <blockquote>
-<screen><indexterm role="fn"><primary>compile</primary></indexterm>&mdash; Function: <function>compile</function> <varname>name code &amp;optional definition</varname></screen>
+<screen><indexterm role="fn"><primary>compile</primary></indexterm>&#151; Function: <function>compile</function> <varname>name code &amp;optional definition</varname></screen>
 <para>If <replaceable>definition</replaceable> is not supplied, <replaceable>name</replaceable> should be the name of a
 not-yet-compiled function.  In this case, compile compiles the function,
 replaces the previous definition of <replaceable>name</replaceable> with the compiled
@@ -152,7 +156,7 @@
 execution of <literal>compile</literal>.</para>
 </blockquote>
 <blockquote>
-<screen><indexterm role="fn"><primary>disassemble</primary></indexterm>&mdash; Function: <function>disassemble</function> <varname>&amp;optional thing &amp;key :h-file :data-file</varname></screen>
+<screen><indexterm role="fn"><primary>disassemble</primary></indexterm>&#151; Function: <function>disassemble</function> <varname>&amp;optional thing &amp;key :h-file :data-file</varname></screen>
 <para>This function does not actually disassemble.  It always calls the &ECL;
 compiler and prints the contents of the c-file, i.e., the C-language code,
 generated by the &ECL; compiler.  If <replaceable>thing</replaceable> is not supplied, or if it is