diff --git a/doc/core/howto/dirdbm.xhtml b/doc/core/howto/dirdbm.xhtml
index 25f0b64..d1b7bbf 100644
--- a/doc/core/howto/dirdbm.xhtml
+++ b/doc/core/howto/dirdbm.xhtml
@@ -40,15 +40,15 @@ Python's built-in DBM modules.</p>
 
 <h2>dirdbm.Shelf</h2>
 
-<p>Sometimes it is neccessary to persist more complicated objects than strings.
-With some care, <code base="twisted.persisted" class="API">dirdbm.Shelf</code>
-can transparently persist
-them. <code>Shelf</code> works exactly like <code>DirDBM</code>, except that
-the values (but not the keys) can be arbitrary picklable objects. However,
-notice that mutating an object after it has been stored in the
-<code>Shelf</code> has no effect on the Shelf.
-When mutating objects, it is neccessary to explictly store them back in the <code>Shelf</code>
-afterwards:</p>
+<p>Sometimes it is neccessary to persist more complicated objects than
+strings.  With some care, <code base="twisted.persisted"
+class="API">dirdbm.Shelf</code> can transparently persist
+them. <code>Shelf</code> works exactly like <code>DirDBM</code>,
+except that the values (but not the keys) can be arbitrary picklable
+objects. However, notice that mutating an object after it has been
+stored in the <code>Shelf</code> has no effect on the Shelf.  When
+mutating objects, it is neccessary to explictly store them back in
+the <code>Shelf</code> afterwards:</p>
 
 <pre class="python-interpreter">
 &gt;&gt;&gt; from twisted.persisted import dirdbm
diff --git a/doc/core/howto/telnet.xhtml b/doc/core/howto/telnet.xhtml
index 933dd84..f7e687e 100644
--- a/doc/core/howto/telnet.xhtml
+++ b/doc/core/howto/telnet.xhtml
@@ -16,15 +16,15 @@ be on port 4040, and it will start listening for connections on this port. Try
 connecting with your favorite telnet utility to 127.0.0.1 port 4040.</p>
 
 <pre class="shell">
-$ <em>telnet localhost 4040</em>
+$ telnet localhost 4040
 Trying 127.0.0.1...
 Connected to localhost.
 Escape character is '^]'.
 
 twisted.manhole.telnet.ShellFactory
 Twisted 1.1.0
-username: <em>admin</em>
-password: <em>admin</em>
+username: admin
+password: admin
 &gt;&gt;&gt;
 </pre>
 
@@ -33,36 +33,37 @@ password: <em>admin</em>
 here. Let's try looking around.</p>
 
 <pre class="python-interpreter">
-&gt;&gt;&gt; <em>dir()</em>
+&gt;&gt;&gt; dir()
 ['__builtins__']
 </pre>
 
 <p>Ok, not much. let's play a little more:</p>
 <pre class="python-interpreter">
-&gt;&gt;&gt; <em>import __main__</em>
-&gt;&gt;&gt; <em>dir(__main__)</em>
+&gt;&gt;&gt; import __main__
+&gt;&gt;&gt; dir(__main__)
 ['__builtins__', '__doc__', '__name__', 'os', 'run', 'string', 'sys']
 
-&gt;&gt;&gt; <em>service</em>
+&gt;&gt;&gt; service
 &lt;twisted.application.internet.TCPServer instance at 0x10270f48&gt;
-&gt;&gt;&gt; <em>service._port</em>
+&gt;&gt;&gt; service._port
 &lt;twisted.manhole.telnet.ShellFactory on 4040&gt;
-&gt;&gt;&gt; <em>service.parent</em>
+&gt;&gt;&gt; service.parent
 &lt;twisted.application.service.MultiService instance at 0x1024d7a8&gt;
 </pre>
 
 <p>The service object is the service used to serve the telnet shell,
-and that it is listening on port 4040 with something called a
-<code class="API" base="twisted.manhole.telnet">ShellFactory</code>. 
-Its parent is a <code class="python">twisted.application.service.MultiService</code>,
-a collection of services. We can keep getting the parent attribute
-of services until we hit the root of all services.</p>
+and that it is listening on port 4040 with something called
+a <code class="API" base="twisted.manhole.telnet">ShellFactory</code>.
+Its parent is
+a <code class="python">twisted.application.service.MultiService</code>,
+a collection of services. We can keep getting the parent attribute of
+services until we hit the root of all services.</p>
 
-<p>As you can see, this is quite useful - we can introspect a
-running process, see the internal objects, and even change
-their attributes. The telnet server can of course be used from straight 
-Python code; you can see how to do this by reading the code for 
-<code class="API">twisted.tap.telnet</code>.</p>
+<p>As you can see, this is quite useful - we can introspect a running
+process, see the internal objects, and even change their
+attributes. The telnet server can of course be used from straight
+Python code; you can see how to do this by reading the code
+for <code class="API">twisted.tap.telnet</code>.</p>
 
 <p>A final note - if you want access to be more secure, you can even
 have the telnet server use SSL. Assuming you have the appropriate
diff --git a/doc/core/howto/testing.xhtml b/doc/core/howto/testing.xhtml
index e83e8d2..0b60709 100644
--- a/doc/core/howto/testing.xhtml
+++ b/doc/core/howto/testing.xhtml
@@ -68,24 +68,26 @@ may complete (and fail) during a later test. These lead to intermittent
 failures that wander from test to test and are very time-consuming to track
 down.</p>
 
-<p>If your test leaves event sources in the reactor, Trial will fail the test.
-The <code>tearDown</code> method is a good place to put cleanup code: it is
-always run regardless of whether your test passes or fails (like a bare <code>
-except</code> clause in a try-except construct). Exceptions in <code>tearDown
-</code> are flagged as errors and flunk the test.
-<code class="API" base="twisted.trial.unittest">TestCase.addCleanup</code> is
-another useful tool for cleaning up.  With it, you can register callables to
-clean up resources as the test allocates them.  Generally, code should be
-written so that only resources allocated in the tests need to be cleaned up in
-the tests.  Resources which are allocated internally by the implementation
-should be cleaned up by the implementation.</p>
-
-<p>If your code uses Deferreds or depends on the reactor running, you can
-return a Deferred from your test method, setUp, or tearDown and Trial will
-do the right thing. That is, it will run the reactor for you until the
-Deferred has triggered and its callbacks have been run. Don't use
-<code>reactor.run()</code>, <code>reactor.stop()</code>, <code>reactor.crash()
-</code>or <code>reactor.iterate()</code> in your tests.</p>
+<p>If your test leaves event sources in the reactor, Trial will fail
+the test.  The <code>tearDown</code> method is a good place to put
+cleanup code: it is always run regardless of whether your test passes
+or fails (like a bare <code> except</code> clause in a try-except
+construct). Exceptions in <code>tearDown</code> are flagged as errors
+and flunk the test. <code class="API"
+base="twisted.trial.unittest">TestCase.addCleanup</code> is another
+useful tool for cleaning up.  With it, you can register callables to
+clean up resources as the test allocates them.  Generally, code should
+be written so that only resources allocated in the tests need to be
+cleaned up in the tests.  Resources which are allocated internally by
+the implementation should be cleaned up by the implementation.</p>
+
+<p>If your code uses Deferreds or depends on the reactor running, you
+can return a Deferred from your test method, setUp, or tearDown and
+Trial will do the right thing. That is, it will run the reactor for
+you until the Deferred has triggered and its callbacks have been
+run. Don't
+use <code>reactor.run()</code>, <code>reactor.stop()</code>, <code>reactor.crash() </code>or <code>reactor.iterate()</code>
+in your tests.</p>
 
 <p>Calls to <code>reactor.callLater</code> create <code class="API"
 base="twisted.internet.interfaces">IDelayedCall</code>s.  These need to be run
@@ -132,21 +134,24 @@ in unusual cases.</p>
 
 <h3>Interacting with warnings in tests</h3>
 
-<p>Trial includes specific support for interacting with Python's
-<code>warnings</code> module.  This support allows warning-emitting code to
-be written test-driven, just as any other code would be.  It also improves
-the way in which warnings reporting when a test suite is running.</p>
+<p>Trial includes specific support for interacting with
+Python's <code>warnings</code> module.  This support allows
+warning-emitting code to be written test-driven, just as any other
+code would be.  It also improves the way in which warnings reporting
+when a test suite is running.</p>
 
 <p><code class="API"
-base="twisted.trial.unittest">TestCase.assertWarns</code> and <code
-class="API" base="twisted.trial.unittest">TestCase.flushWarnings</code>
-allow tests to be written which make assertions about what warnings have
-been emitted during a particular test method.  <code>flushWarnings</code> is
-the new method and has a simpler and more flexible API and should be
-preferred when writing new code.  In order to test a warning with
-<code>flushWarnings</code>, write a test which first invokes the code which
-will emit a warning and then calls <code>flushWarnings</code> and makes
-assertions about the result.  For example:</p>
+base="twisted.trial.unittest">TestCase.assertWarns</code>
+and <code class="API"
+base="twisted.trial.unittest">TestCase.flushWarnings</code> allow
+tests to be written which make assertions about what warnings have
+been emitted during a particular test
+method.  <code>flushWarnings</code> is the new method and has a
+simpler and more flexible API and should be preferred when writing new
+code.  In order to test a warning with <code>flushWarnings</code>,
+write a test which first invokes the code which will emit a warning
+and then calls <code>flushWarnings</code> and makes assertions about
+the result.  For example:</p>
 
 <pre class="python">
 def test_warning(self):
@@ -154,18 +159,19 @@ def test_warning(self):
     self.assertEqual(len(self.flushWarnings()), 1)
 </pre>
 
-<p>Warnings emitted in tests which are not flushed will be included by the
-default reporter in its output after the result of the test.  If Python's
-warnings filter system (see <a
-href="http://docs.python.org/using/cmdline.html#cmdoption-W">the -W command
-line option to Python</a>) is configured to treat a warning as an error,
-then unflushed warnings will causes tests to fail and will be included in
-the summary section of the default reporter.  Note that unlike usual
-operation, when <code>warnings.warn</code> is called as part of a test
-method, it will not raise an exception when warnings have been configured as
-errors.  However, if called outside of a test method (for example, at module
-scope in a test module or a module imported by a test module) then it
-<em>will</em> raise an exception.</p>
+<p>Warnings emitted in tests which are not flushed will be included by
+the default reporter in its output after the result of the test.  If
+Python's warnings filter system
+(see <a href="http://docs.python.org/using/cmdline.html#cmdoption-W">the
+-W command line option to Python</a>) is configured to treat a warning
+as an error, then unflushed warnings will causes tests to fail and
+will be included in the summary section of the default reporter.  Note
+that unlike usual operation, when <code>warnings.warn</code> is called
+as part of a test method, it will not raise an exception when warnings
+have been configured as errors.  However, if called outside of a test
+method (for example, at module scope in a test module or a module
+imported by a test module) then it <em>will</em> raise an
+exception.</p>
 
   </body>
 </html>
diff --git a/doc/core/howto/upgrading.xhtml b/doc/core/howto/upgrading.xhtml
index 2a50e4f..f994ee8 100644
--- a/doc/core/howto/upgrading.xhtml
+++ b/doc/core/howto/upgrading.xhtml
@@ -21,21 +21,24 @@ structures. </p>
 
 <h2>Basic Persistence: Application and .tap files</h2>
 
-<p>Simple object persistence (using <code>pickle</code> or
-<code>jelly</code>) provides the fundamental <q>save the object to disk</q>
-functionality at application shutdown. If you use the <code class="API"
-base="twisted.application.service">Application</code> object, every object
-referenced by your Application will be saved into the
-<code>-shutdown.tap</code> file when the program terminates. When you use
-<code>twistd</code> to launch that new .tap file, the Application object
-will be restored along with all of its referenced data.</p>
-
-<p>This provides a simple way to have data outlive any particular invocation
-of your program: simply store it as an attribute of the Application. Note
-that all Services are referenced by the Application, so their attributes
-will be stored as well. Ports that have been bound with listenTCP (and the
-like) are also remembered, and the sockets are created at startup time (when
-<code>Application.run</code> is called).</p>
+<p>Simple object persistence (using <code>pickle</code>
+or <code>jelly</code>) provides the fundamental <q>save the object to
+disk</q> functionality at application shutdown. If you use
+the <code class="API"
+base="twisted.application.service">Application</code> object, every
+object referenced by your Application will be saved into
+the <code>-shutdown.tap</code> file when the program terminates. When
+you use <code>twistd</code> to launch that new .tap file, the
+Application object will be restored along with all of its referenced
+data.</p>
+
+<p>This provides a simple way to have data outlive any particular
+invocation of your program: simply store it as an attribute of the
+Application. Note that all Services are referenced by the Application,
+so their attributes will be stored as well. Ports that have been bound
+with listenTCP (and the like) are also remembered, and the sockets are
+created at startup time (when <code>Application.run</code> is
+called).</p>
 
 <p>To influence the way that the <code class="API"
 base="twisted.application.service">Application</code> is persisted, you can adapt
@@ -45,8 +48,9 @@ a string like <q>pickle</q> or <q>source</q>. These use different serializers (a
 extensions: <q>.tap</q> and <q>.tas</q> respectively) for the
 saved Application.</p>
 
-<p>You can manually cause the application to be saved by calling its
-<code>.save</code> method (on the <code class="API">twisted.persisted.sob.IPersistable</code>
+<p>You can manually cause the application to be saved by calling
+its <code>.save</code> method (on
+the <code class="API">twisted.persisted.sob.IPersistable</code>
 adapted object).</p>
 
 
@@ -76,15 +80,16 @@ those data attributes: for example, if you use a string in one version and
 an integer in another, those versions must have different version numbers.
 </p>
 
-<p>The version number is defined in a class attribute named
-<code>persistenceVersion</code>. This is an integer which will be stored in
-the .tap file along with the rest of the instance state. When the object is
-unserialized, the saved persistenceVersion is compared against the current
-class's value, and if they differ, special upgrade methods are called. These
-methods are named <code>upgradeToVersionNN</code>, and there must be one for
-each intermediate version. These methods are expected to manipulate the
-instance's state from the previous version's format into that of the new
-version.</p>
+<p>The version number is defined in a class attribute
+named <code>persistenceVersion</code>. This is an integer which will
+be stored in the .tap file along with the rest of the instance
+state. When the object is unserialized, the saved persistenceVersion
+is compared against the current class's value, and if they differ,
+special upgrade methods are called. These methods are
+named <code>upgradeToVersionNN</code>, and there must be one for each
+intermediate version. These methods are expected to manipulate the
+instance's state from the previous version's format into that of the
+new version.</p>
 
 <p>To use this, simply have your class inherit from <code class="API"
 base="twisted.persisted.styles">Versioned</code>. You don't have to do this
@@ -137,11 +142,12 @@ class Thing(Versioned):
       self.length = (length, units)
 </pre>
 
-<p>Note that we must provide both <code>upgradeToVersion1</code>
-<em>and</em> <code>upgradeToVersion2</code>. We have to assume that the
-saved .tap files which will be provided to this class come from a random
-assortment of old versions: we must be prepared to accept anything ever
-saved by a released version of our application.</p>
+<p>Note that we must provide
+both <code>upgradeToVersion1</code> <em>and</em> <code>upgradeToVersion2</code>. We
+have to assume that the saved .tap files which will be provided to
+this class come from a random assortment of old versions: we must be
+prepared to accept anything ever saved by a released version of our
+application.</p>
 
 <p>Finally, version 2.0 adds multiple dimensions. Instead of merely
 recording the length of a line, it records the size of an N-dimensional
@@ -294,16 +300,18 @@ editing the code).</p>
 </ul>
 
 <p>Finally, note that <code class="API"
-base="twisted.python.rebuild">rebuild</code> <em>cannot</em> currently be
-mixed with <code class="API"
-base="twisted.persisted.styles">Versioned</code>. <code>rebuild</code> does
-not run any of the classes' methods, whereas <code>Versioned</code> works by
-running <code>__setstate__</code> during the load process and
-<code>doUpgrade</code> afterwards. This means <code>rebuild</code> can only
-be used to process upgrades that do not change the data attributes of any of
-the involved classes. Any time attributes are added or removed, the program
-must be shut down, persisted, and restarted, with upgradeToVersionNN methods
-used to handle the attributes. (this may change in the future, but for now
-the implementation is easier and more reliable with this restriction).</p>
+base="twisted.python.rebuild">rebuild</code> <em>cannot</em> currently
+be mixed with <code class="API"
+base="twisted.persisted.styles">Versioned</code>. <code>rebuild</code>
+does not run any of the classes' methods,
+whereas <code>Versioned</code> works by
+running <code>__setstate__</code> during the load process
+and <code>doUpgrade</code> afterwards. This means <code>rebuild</code>
+can only be used to process upgrades that do not change the data
+attributes of any of the involved classes. Any time attributes are
+added or removed, the program must be shut down, persisted, and
+restarted, with upgradeToVersionNN methods used to handle the
+attributes. (this may change in the future, but for now the
+implementation is easier and more reliable with this restriction).</p>
 
 </body> </html>
