diff -bu doc/core/howto/tutorial/intro.xhtml doc/core/howto/tutorial/intro.xhtml
--- doc/core/howto/tutorial/intro.xhtml	2010-09-27 12:17:27.847250386 +0200
+++ doc/core/howto/tutorial/intro.xhtml	2010-09-09 15:12:51.334914448 +0200
@@ -27,14 +27,15 @@
 No Plan.
 </pre>
 
-<p>If the target computer does not have the <code>fingerd</code> <a
-href="../glossary.xhtml#Daemon">daemon</a> running you'll get a "Connection
-Refused" error. Paranoid sysadmins keep <code>fingerd</code> off or limit the
-output to hinder crackers and harassers. The above format is the standard
-<code>fingerd</code> default, but an alternate implementation can output
-anything it wants, such as automated responsibility status for everyone in an
-organization. You can also define pseudo "users", which are essentially
-keywords.</p>
+<p>If the target computer does not have
+the <code>fingerd</code> <a href="../glossary.xhtml#Daemon">daemon</a>
+running you'll get a "Connection Refused" error. Paranoid sysadmins
+keep <code>fingerd</code> off or limit the output to hinder crackers
+and harassers. The above format is the standard <code>fingerd</code>
+default, but an alternate implementation can output anything it wants,
+such as automated responsibility status for everyone in an
+organization. You can also define pseudo "users", which are
+essentially keywords.</p>
 
 <p>This portion of the tutorial makes use of factories and protocols as
 introduced in the <a href="../servers.xhtml">Writing a TCP Server howto</a> and
@@ -75,11 +76,12 @@
 over and over again, responding to network events and making scheduled calls to
 code.</p>
 
-<p>Note that there are actually several different reactors to choose from;
-<code>from twisted.internet import reactor</code> returns the current reactor.
-If you haven't chosen a reactor class yet, it automatically chooses the
-default.  See the <a href="../reactor-basics.xhtml">Reactor Basics HOWTO</a>
-for more information.</p>
+<p>Note that there are actually several different reactors to choose
+from; <code>from twisted.internet import reactor</code> returns the
+current reactor.  If you haven't chosen a reactor class yet, it
+automatically chooses the default.  See
+the <a href="../reactor-basics.xhtml">Reactor Basics HOWTO</a> for
+more information.</p>
 
 <h2>Do Nothing</h2>
 
@@ -189,30 +191,33 @@
 other operations in the meantime, and waits for some signal that data is ready
 to be processed before returning to that process.</p>
 
-<p>In brief, the code in <code>FingerFactory</code> above creates a Deferred,
-to which we start to attach <em>callbacks</em>.  The deferred action in
-<code>FingerFactory</code> is actually a fast-running expression consisting of
-one dictionary method, <code>get</code>. Since this action can execute without
-delay, <code>FingerFactory.getUser</code> uses <code>defer.succeed</code> to
-create a <code>Deferred</code> which already has a result, meaning its return
-value will be passed immediately to the first callback function, which turns out
-to be <code>FingerProtocol.writeResponse</code>.  We've also defined an
-<em>errback</em> (appropriately named <code>FingerProtocol.onError</code>) that
-will be called instead of <code>writeResponse</code> if something goes
-wrong.</p>
+<p>In brief, the code in <code>FingerFactory</code> above creates a
+Deferred, to which we start to attach <em>callbacks</em>.  The
+deferred action in <code>FingerFactory</code> is actually a
+fast-running expression consisting of one dictionary
+method, <code>get</code>. Since this action can execute without
+delay, <code>FingerFactory.getUser</code>
+uses <code>defer.succeed</code> to create a Deferred which already has
+a result, meaning its return value will be passed immediately to the
+first callback function, which turns out to
+be <code>FingerProtocol.writeResponse</code>.  We've also defined
+an <em>errback</em> (appropriately
+named <code>FingerProtocol.onError</code>) that will be called instead
+of <code>writeResponse</code> if something goes wrong.</p>
 
 <h2>Run 'finger' Locally</h2>
 
 <a href="listings/finger/finger09.py" class="py-listing">finger09.py</a>
 
-<p>This example also makes use of a <code>Deferred</code>.
-<code>twisted.internet.utils.getProcessOutput</code> is a non-blocking version
-of Python's <code>commands.getoutput</code>: it runs a shell command
-(<code>finger</code>, in this case) and captures its standard output.  However,
-<code>getProcessOutput</code> returns a <code>Deferred</code> instead of the
-output itself.  Since <code>FingerProtocol.lineReceived</code> is already
-expecting a Deferred to be returned by <code>getUser</code>, it doesn't need to
-be changed, and it returns the standard output as the finger result.</p>
+<p>This example also makes use of a
+Deferred. <code>twisted.internet.utils.getProcessOutput</code> is a
+non-blocking version of Python's <code>commands.getoutput</code>: it
+runs a shell command (<code>finger</code>, in this case) and captures
+its standard output.  However, <code>getProcessOutput</code> returns a
+Deferred instead of the output itself.
+Since <code>FingerProtocol.lineReceived</code> is already expecting a
+Deferred to be returned by <code>getUser</code>, it doesn't need to be
+changed, and it returns the standard output as the finger result.</p>
 
 <p>Note that in this case the shell's built-in <code>finger</code> command is
 simply run with whatever arguments it is given. This is probably insecure, so
@@ -222,12 +227,14 @@
 
 <h2>Read Status from the Web</h2>
 
-<p>The web. That invention which has infiltrated homes around the world finally
-gets through to our invention. In this case we use the built-in Twisted web
-client via <code>twisted.web.client.getPage</code>, a non-blocking version of
-Python's <code>urllib2.urlopen(URL).read()</code>.  Like
-<code>getProcessOutput</code> it returns a <code>Deferred</code> which will be
-called back with a string, and can thus be used as a drop-in replacement.</p>
+<p>The web. That invention which has infiltrated homes around the
+world finally gets through to our invention. In this case we use the
+built-in Twisted web client
+via <code>twisted.web.client.getPage</code>, a non-blocking version of
+Python's <code>urllib2.urlopen(URL).read()</code>.
+Like <code>getProcessOutput</code> it returns a Deferred which will be
+called back with a string, and can thus be used as a drop-in
+replacement.</p>
 
 <p>Thus, we have examples of three different database back-ends, none of which
 change the protocol class. In fact, we will not have to change the protocol
@@ -279,21 +286,22 @@
 
 <a href="listings/finger/finger11.tac" class="py-listing">finger11.tac</a>
 
-<p>Instead of using <code>reactor.listenTCP</code> as in the above examples,
-here we are using its application-aware counterpart,
-<code>internet.TCPServer</code>.  Notice that when it is instantiated, the
-application object itself does not reference either the protocol or the factory.
-Any services (such as <code>TCPServer</code>) which have the application as
-their parent will be started when the application is started by twistd.  The
-application object is more useful for returning an object that supports the
-<code class="API"
+
+<p>Instead of using <code>reactor.listenTCP</code> as in the above
+examples, here we are using its application-aware
+counterpart, <code>internet.TCPServer</code>.  Notice that when it is
+instantiated, the application object itself does not reference either
+the protocol or the factory.  Any services (such as TCPServer) which
+have the application as their parent will be started when the
+application is started by twistd.  The application object is more
+useful for returning an object that supports the <code class="API"
 base="twisted.application.service">IService</code>, <code class="API"
 base="twisted.application.service">IServiceCollection</code>, <code class="API"
-base="twisted.application.service">IProcess</code>, and <code class="API"
-base="twisted.persisted">sob.IPersistable</code> interfaces with the given
-parameters; we'll be seeing these in the next part of the tutorial. As the
-parent of the <code>TCPServer</code> we opened, the application lets us manage
-the <code>TCPServer</code>.</p>
+base="twisted.application.service">IProcess</code>,
+and <code class="API" base="twisted.persisted">sob.IPersistable</code>
+interfaces with the given parameters; we'll be seeing these in the
+next part of the tutorial. As the parent of the TCPServer we opened,
+the application lets us manage the TCPServer.</p>
 
 <p>With the daemon running on the standard finger port, you can test it with
 the standard finger command: <code>finger moshez</code>.</p>
Common subdirectories: doc/core/howto/tutorial/listings and doc/core/howto/tutorial/listings
diff -bu doc/core/howto/tutorial/protocol.xhtml doc/core/howto/tutorial/protocol.xhtml
--- doc/core/howto/tutorial/protocol.xhtml	2010-09-27 12:17:27.847250386 +0200
+++ doc/core/howto/tutorial/protocol.xhtml	2010-09-09 15:14:39.166913412 +0200
@@ -40,13 +40,15 @@
 
 <a href="listings/finger/finger12.tac" class="py-listing">finger12.tac</a>
 
-<p>This program has two protocol-factory-TCPServer pairs, which are both child
-services of the application.  Specifically, the
-<code base="API" class="twisted.application.service.Service">setServiceParent</code>
-method is used to define the two TCPServer services as children of
-<code>application</code>, which implements
-<code base="API" class="twisted.application.servce">IServiceCollection</code>.
-Both services are thus started with the application.</p>
+<p>This program has two protocol-factory-TCPServer pairs, which are
+both child services of the application.  Specifically,
+the <code base="API"
+class="twisted.application.service.Service">setServiceParent</code>
+method is used to define the two TCPServer services as children
+of <code>application</code>, which implements <code base="API"
+class="twisted.application.servce">IServiceCollection</code>.  Both
+services are thus started with the application.</p>
+
 
 <h2>Use Services to Make Dependencies Sane</h2>
 
@@ -58,22 +60,24 @@
 class with methods that will create factories on the fly. The service
 also contains methods the factories will depend on.</p>
 
-<p>The factory-creation methods, <code>getFingerFactory</code> and
-<code>getFingerSetterFactory</code>, follow this pattern:</p>
+<p>The factory-creation methods, <code>getFingerFactory</code>
+and <code>getFingerSetterFactory</code>, follow this pattern:</p>
 
 <ol>
 
-<li>Instantiate a generic server factory,
-<code>twisted.internet.protocol.ServerFactory</code>.</li>
+<li>Instantiate a generic server
+factory, <code>twisted.internet.protocol.ServerFactory</code>.</li>
 
 <li>Set the protocol class, just like our factory class would have.</li>
 
 <li>Copy a service method to the factory as a function attribute.  The
-function won't have access to the factory's <code>self</code>, but that's OK
-because as a bound method it has access to the service's <code>self</code>,
-which is what it needs.  For <code>getUser</code>, a custom method defined in
-the service gets copied.  For <code>setUser</code>, a standard method of the
-<code>users</code> dictionary is copied.</li>
+function won't have access to the factory's <code>self</code>, but
+that's OK because as a bound method it has access to the
+service's <code>self</code>, which is what it needs.
+For <code>getUser</code>, a custom method defined in the service gets
+copied.  For <code>setUser</code>, a standard method of
+the <code>users</code> dictionary is copied.</li>
+
 
 </ol>
 
@@ -82,11 +86,11 @@
 none of our protocol classes had to be changed, and neither will have to
 change until the end of the tutorial.</p>
 
-<p>As an application
-<code class="API" base="twisted.application.service">Service</code> , this new
-finger service implements the
-<code class="API" base="twisted.application.service">IService</code> interface
-and can be started and stopped in a standardized manner.  We'll make use of
+<p>As an application <code class="API"
+base="twisted.application.service">service</code> , this new finger
+service implements the <code class="API"
+base="twisted.application.service">IService</code> interface and can
+be started and stopped in a standardized manner.  We'll make use of
 this in the next example.</p>
 
 <a href="listings/finger/finger13.tac" class="py-listing">finger13.tac</a>
@@ -104,32 +108,33 @@
 
 <a href="listings/finger/finger14.tac" class="py-listing">finger14.tac</a>
 
-<p>Since this version is reading data from a file (and refreshing the data every
-30 seconds), there is no <code>FingerSetterFactory</code> and thus nothing
-listening on port 1079.</p>
-
-<p>Here we override the standard
-<code class="API" base="twisted.application.service.Service">startService</code>
-and
-<code class="API" base="twisted.application.service.Service">stopService</code>
-hooks in the Finger service, which is set up as a child service of
-the application in the last line of the code. <code>startService</code> calls
-<code>_read</code>, the function responsible for reading the data;
-<code>reactor.callLater</code> is then used to schedule it to run again after
-thirty seconds every time it is called. <code>reactor.callLater</code> returns
-an object that lets us cancel the scheduled run in <code>stopService</code>
-using its <code>cancel</code> method.</p>
+<p>Since this verison is reading data from a file (and refreshing the data 
+every 30 seconds), there is no <code>FingerSetterFactory</code> and thus 
+nothing listening on port 1079.</p>
+
+<p>Here we override the standard <code class="API"
+base="twisted.application.service.Service">startService</code>
+and <code class="API"
+base="twisted.application.service.Service">stopService</code> hooks in
+the Finger service, which is set up as a child service of the
+application in the last line of the code. <code>startService</code>
+calls <code>_read</code>, the function responsible for reading the
+data; <code>reactor.callLater</code> is then used to schedule it to
+run again after thirty seconds every time it is
+called. <code>reactor.callLater</code> returns an object that lets us
+cancel the scheduled run in <code>stopService</code> using
+its <code>cancel</code> method.</p>
 
 <h2>Announce on Web, Too</h2>
 
-<p>The same kind of service can also produce things useful for
-other protocols. For example, in twisted.web, the factory
-itself (<code base="API" class="twisted.web.server">Site</code>) is almost
-never subclassed &mdash; instead, it is given a resource, which represents the tree
-of resources available via URLs. That hierarchy is navigated by
-<code base="API" class="twisted.web.server">Site</code> and overriding it
-dynamically is possible with
-<code base="API" class="twisted.web.resource.Resource">getChild</code>.</p>
+<p>The same kind of service can also produce things useful for other
+protocols. For example, in twisted.web, the factory itself
+(<code base="API" class="twisted.web.server">Site</code>) is almost
+never subclassed &mdash; instead, it is given a resource, which
+represents the tree of resources available via URLs. That hierarchy is
+navigated by <code base="API" class="twisted.web.server">Site</code>
+and overriding it dynamically is possible with <code base="API"
+class="twisted.web.resource.Resource">getChild</code>.</p>
 
 <p>To integrate this into the Finger application (just because we can), we set
 up a new TCPServer that calls the <code base="API"
@@ -153,16 +158,18 @@
 
 <a href="listings/finger/finger16.tac" class="py-listing">finger16.tac</a>
 
-<p><code>FingerService</code> now has another new function,
-<code>getIRCbot</code>, which returns the
-<code>ReconnectingClientFactory</code>.  This factory in turn will instantiate
-the <code>IRCReplyBot</code> protocol.  The IRCBot is configured in the last
-line to connect to <code>irc.freenode.org</code> with a nickname of
-<code>fingerbot</code>.</p>
-
-<p>By overriding <code>irc.IRCClient.connectionMade</code>,
-<code>IRCReplyBot</code> can access the <code>nickname</code> attribute of the
-factory that instantiated it.</p>
+<p><code>FingerService</code> now has another new
+function, <code>getIRCbot</code>, which returns
+the <code>ReconnectingClientFactory</code>.  This factory in turn will
+instantiate the <code>IRCReplyBot</code> protocol.  The IRCBot is
+configured in the last line to connect
+to <code>irc.freenode.org</code> with a nickname
+of <code>fingerbot</code>.</p>
+
+<p>By
+overriding <code>irc.IRCClient.connectionMade</code>, <code>IRCReplyBot</code>
+can access the <code>nickname</code> attribute of the factory that
+instantiated it.</p>
 
 <h2>Add XML-RPC Support</h2>
 
Only in doc/core/howto/tutorial: .svn
diff -bu doc/core/howto/tutorial/web.xhtml doc/core/howto/tutorial/web.xhtml
--- doc/core/howto/tutorial/web.xhtml	2010-09-27 12:17:27.847250386 +0200
+++ doc/core/howto/tutorial/web.xhtml	2010-09-09 15:15:06.870913579 +0200
@@ -13,14 +13,16 @@
 <p> This is the sixth part of the Twisted tutorial <a
 href="index.xhtml">Twisted from Scratch, or The Evolution of Finger</a>.</p>
 
-<p>In this part, we demonstrate adding a web frontend using simple <code
-class="API">twisted.web.resource.Resource</code> objects: <code
-class="python">UserStatusTree</code>, which will produce a listing of all
-users at the base URL (<code>/</code>) of our site; <code
-class="python">UserStatus</code>, which gives the status of each user at the
-location <code>/username</code>; and <code class="python">UserStatusXR</code>,
-which exposes an XMLRPC interface to <code class="python">getUser</code> and
-<code class="python">getUsers</code> functions at the URL <code>/RPC2</code>.</p>
+<p>In this part, we demonstrate adding a web frontend using
+simple <code class="API">twisted.web.resource.Resource</code>
+objects: <code class="python">UserStatusTree</code>, which will
+produce a listing of all users at the base URL (<code>/</code>) of our
+site; <code class="python">UserStatus</code>, which gives the status
+of each user at the locaton <code>/username</code>;
+and <code class="python">UserStatusXR</code>, which exposes an XMLRPC
+interface to <code class="python">getUser</code>
+and <code class="python">getUsers</code> functions at the
+URL <code>/RPC2</code>.</p>
 
 <p>In this example we construct HTML segments manually. If the web interface
 was less trivial, we would want to use more sophisticated web templating and
