diff --git a/doc/html/openssl-context.html b/doc/html/openssl-context.html
index 7be0d1f..d5a2ab0 100644
--- a/doc/html/openssl-context.html
+++ b/doc/html/openssl-context.html
@@ -120,9 +120,7 @@
 <dd>
 Set the information callback to <var>callback</var>. This function will be called
 from time to time during SSL handshakes.
-</EM></EM></EM>
-<P>
-<EM><EM><EM><var>callback</var> should take three arguments: a Connection object and two
+<var>callback</var> should take three arguments: a Connection object and two
 integers. The first integer specifies where in the SSL handshake the function
 was called, and the other the return code from a (possibly failed) internal
 function call.
@@ -131,18 +129,14 @@
 <dl><dt><b><a name='l2h-126'><tt class='method'>set_options</tt></a></b>(<var>options</var>)
 <dd>
 Add SSL options. Options you have set before are not cleared!
-</EM></EM></EM>
-<P>
-<EM><EM><EM>This method should be used with the <tt class="constant">OP_*</tt> constants.
+This method should be used with the <tt class="constant">OP_*</tt> constants.
 </dl>
 <P>
 <dl><dt><b><a name='l2h-127'><tt class='method'>set_passwd_cb</tt></a></b>(<var>callback</var><big>[</big><var>, userdata</var><big>]</big>)
 <dd>
 Set the passphrase callback to <var>callback</var>. This function will be called
 when a private key with a passphrase is loaded.
-</EM></EM></EM>
-<P>
-<EM><EM><EM><var>callback</var> should take a boolean argument <var>repeat</var> and an arbitrary
+<var>callback</var> should take a boolean argument <var>repeat</var> and an arbitrary
 argument <var>data</var> and return the passphrase entered by the user. If
 <var>repeat</var> is true then <var>callback</var> should ask for the passphrase twice
 and make sure that the two entries are equal. The <var>data</var> argument is the
@@ -175,9 +169,7 @@
 <tt class="constant">VERIFY_PEER</tt> is used, <var>mode</var> can be OR:ed with
 <tt class="constant">VERIFY_FAIL_IF_NO_PEER_CERT</tt> and <tt class="constant">VERIFY_CLIENT_ONCE</tt> to
 further control the behaviour.
-</EM></EM></EM>
-<P>
-<EM><EM><EM><var>callback</var> should take five arguments: A Connection object, an X509 object,
+<var>callback</var> should take five arguments: A Connection object, an X509 object,
 and three integer variables, which are in turn potential error number, error
 depth and return code. <var>callback</var> should return true if verification passes
 and false otherwise.
diff --git a/doc/html/openssl-rand.html b/doc/html/openssl-rand.html
index 0828be8..c958d15 100644
--- a/doc/html/openssl-rand.html
+++ b/doc/html/openssl-rand.html
@@ -59,7 +59,7 @@
 <dd>
 Mix bytes from <var>string</var> into the PRNG state. The <var>entropy</var> argument is
 (the lower bound of) an estimate of how much randomness is contained in
-<var>string</var>, measured in bytes. For more information, see e.g. <a class="rfc" name="rfcref-1792"
+<var>string</var>, measured in bytes. For more information, see e.g. <a class="rfc" name="rfcref-1784"
 href="http://www.ietf.org/rfc/rfc1750.txt">RFC 1750</a>.
 </dl>
 <P>
diff --git a/doc/pyOpenSSL.tex b/doc/pyOpenSSL.tex
index f732859..de91545 100644
--- a/doc/pyOpenSSL.tex
+++ b/doc/pyOpenSSL.tex
@@ -731,7 +731,6 @@
 \begin{methoddesc}[Context]{set_info_callback}{callback}
 Set the information callback to \var{callback}. This function will be called
 from time to time during SSL handshakes.
-
 \var{callback} should take three arguments: a Connection object and two
 integers. The first integer specifies where in the SSL handshake the function
 was called, and the other the return code from a (possibly failed) internal
@@ -740,14 +739,12 @@
 
 \begin{methoddesc}[Context]{set_options}{options}
 Add SSL options. Options you have set before are not cleared!
-
 This method should be used with the \constant{OP_*} constants.
 \end{methoddesc}
 
 \begin{methoddesc}[Context]{set_passwd_cb}{callback\optional{, userdata}}
 Set the passphrase callback to \var{callback}. This function will be called
 when a private key with a passphrase is loaded.
-
 \var{callback} should take a boolean argument \var{repeat} and an arbitrary
 argument \var{data} and return the passphrase entered by the user. If
 \var{repeat} is true then \var{callback} should ask for the passphrase twice
@@ -778,7 +775,6 @@
 \constant{VERIFY_PEER} is used, \var{mode} can be OR:ed with
 \constant{VERIFY_FAIL_IF_NO_PEER_CERT} and \constant{VERIFY_CLIENT_ONCE} to
 further control the behaviour.
-
 \var{callback} should take five arguments: A Connection object, an X509 object,
 and three integer variables, which are in turn potential error number, error
 depth and return code. \var{callback} should return true if verification passes
