diff --git a/doc/xml/Xserver-spec.xml b/doc/xml/Xserver-spec.xml
index 563705f..5acffb6 100644
--- a/doc/xml/Xserver-spec.xml
+++ b/doc/xml/Xserver-spec.xml
@@ -736,9 +736,17 @@ of the Screen,  and the arguments to the DIX WakeupHandler().
 </para>
 <para>
 In addition to the per-screen BlockHandlers, any module may register
-block and wakeup handlers (only together) using:
+block and wakeup handlers using:
 <blockquote>
 <programlisting>
+	Bool RegisterBlockHandler (blockHandler, blockData)
+		BlockHandlerProcPtr    blockHandler;
+		pointer blockData;
+
+	Bool RegisterWakeupHandler (wakeupHandler, blockData)
+		WakeupHandlerProcPtr   wakeupHandler;
+		pointer blockData;
+
 	Bool RegisterBlockAndWakeupHandlers (blockHandler, wakeupHandler, blockData)
 		BlockHandlerProcPtr    blockHandler;
 		WakeupHandlerProcPtr   wakeupHandler;
@@ -746,18 +754,26 @@ block and wakeup handlers (only together) using:
 </programlisting>
 </blockquote>
 A FALSE return code indicates that the registration failed for lack of
-memory.  To remove a registered Block handler at other than server reset time
-(when they are all removed automatically), use:
+memory.  To remove a registered Block or Wakeup handler at other than
+server reset time (when they are all removed automatically), use:
 <blockquote>
 <programlisting>
+	RemoveBlockHandler (blockHandler, blockData)
+		BlockHandlerProcPtr   blockHandler;
+		pointer blockData;
+
+	RemoveWakeupHandler (wakeupHandler, blockData)
+		WakeupHandlerProcPtr  wakeupHandler;
+		pointer blockData;
+
 	RemoveBlockAndWakeupHandlers (blockHandler, wakeupHandler, blockData)
 		BlockHandlerProcPtr   blockHandler;
 		WakeupHandlerProcPtr  wakeupHandler;
 		pointer blockData;
 </programlisting>
 </blockquote>
-All three arguments must match the values passed to
-RegisterBlockAndWakeupHandlers.
+All arguments to the Remove function must match the values passed to
+the matching Register function.
 </para>
 <para>
 These registered block handlers are called after the per-screen handlers:
@@ -785,8 +801,7 @@ millisecond wrapping throrugh 32 bits,
 has been provided.
 </para>
 <para>
-Any wakeup handlers registered with RegisterBlockAndWakeupHandlers will
-be called before the Screen handlers:
+Any registered wakeup handlers will be called before the Screen handlers:
 <blockquote><programlisting>
 
 	void (*WakeupHandler) (blockData, err, pReadmask)
