diff --git a/dlls/dplayx/dpclassfactory.c b/dlls/dplayx/dpclassfactory.c
index 7eb68cd..e9523a7 100644
--- a/dlls/dplayx/dpclassfactory.c
+++ b/dlls/dplayx/dpclassfactory.c
@@ -1,4 +1,5 @@
-/*
+/* COM class factory for direct play lobby interfaces.
+ *
  * Copyright 1999, 2000 Peter Hunnisett
  *
  * This library is free software; you can redistribute it and/or
diff --git a/dlls/dplayx/dplay.c b/dlls/dplayx/dplay.c
index a67616e..9533af2 100644
--- a/dlls/dplayx/dplay.c
+++ b/dlls/dplayx/dplay.c
@@ -2,8 +2,6 @@
  *
  * Copyright 1998,1999,2000,2001 - Peter Hunnisett
  *
- * <presently under construction - contact hunnise@nortelnetworks.com>
- *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
diff --git a/dlls/dplayx/dplayx_global.c b/dlls/dplayx/dplayx_global.c
index d344285..909253e 100644
--- a/dlls/dplayx/dplayx_global.c
+++ b/dlls/dplayx/dplayx_global.c
@@ -17,10 +17,17 @@
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-/* NOTE: Methods that begin with DPLAYX_ are used for dealing with
- *       dplayx.dll data which is accessible from all processes.
+ *
+ *
+ * NOTES: 
+ *  o Implementation of all things which are associated with dplay on
+ *    the computer - ie shared resources and such. Methods in this
+ *    compilation unit should not call anything out side this unit
+ *    excepting base windows services and an interface to start the
+ *    messaging thread.
+ *  o Methods that begin with DPLAYX_ are used for dealing with
+ *    dplayx.dll data which is accessible from all processes.
+ *
  */
 
 #include <stdarg.h>
diff --git a/dlls/dplayx/dplayx_main.c b/dlls/dplayx/dplayx_main.c
index 84d5903..d79e535 100644
--- a/dlls/dplayx/dplayx_main.c
+++ b/dlls/dplayx/dplayx_main.c
@@ -18,6 +18,44 @@
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * NOTES
+ *  o DPMSGCMD_ENUMSESSIONSREPLY & DPMSGCMD_ENUMSESSIONSREQUEST
+ *    Have most fields understood, but not all.  Everything seems to work.
+ *  o DPMSGCMD_REQUESTNEWPLAYERID & DPMSGCMD_NEWPLAYERIDREPLY
+ *    Barely work. This needs to be completed for sessions to start.
+ *  o A small issue will be the fact that DirectX 6.1(ie. DirectPlay4)
+ *    introduces a layer of functionality inside the DP objects which 
+ *    provide guaranteed protocol delivery.  This is even if the native
+ *    protocol, IPX or modem for instance, doesn't guarantee it. I'm going
+ *    to leave this kind of implementation to as close to the end as 
+ *    possible. However, I will implement an abstraction layer, where 
+ *    possible, for this functionality. It will do nothing to start, but 
+ *    will require only the implementation of the guaranteness to give 
+ *    final implementation.
+ *
+ * TODO:
+ *  - Implement mutual exclusion on object data for existing functions
+ *  - Ensure that all dll stubs are present and the ordinals are correct
+ *  - Addition of DirectX 7.0 functionality for direct play
+ *  - Implement some WineLib test programs using sdk programs as a skeleton
+ *  - Change RegEnumKeyEx enumeration pattern to allow error handling and to
+ *    share registry implementation (or at least simplify).
+ *  - Add in appropriate RegCloseKey calls for all the opening we're doing...
+ *  - Fix all the buffer sizes for registry calls. They're off by one - 
+ *    but in a safe direction.
+ *  - Fix race condition on interface destruction
+ *  - Handles need to be correctly reference counted
+ *  - Check if we need to deallocate any list objects when destroying 
+ *    a dplay interface
+ *  - RunApplication process spawning needs to have correct syncronization.
+ *  - Need to get inter lobby messages working.
+ *  - Decypher dplay messages between applications and implement...
+ *  - Need to implement lobby session spawning.
+ *  - Improve footprint and realtime blocking by setting up a separate data share
+ *    between lobby application and client since there can be multiple apps per
+ *    client. Also get rid of offset dependency by making data offset independent
+ *    somehow.
  */
 #include <stdarg.h>
 
diff --git a/dlls/dplayx/dplayx_messages.c b/dlls/dplayx/dplayx_messages.c
index 6d5d442..8be8ea9 100644
--- a/dlls/dplayx/dplayx_messages.c
+++ b/dlls/dplayx/dplayx_messages.c
@@ -2,8 +2,6 @@
  *
  * Copyright 2000,2001 - Peter Hunnisett
  *
- * <presently under construction - contact hunnise@nortelnetworks.com>
- *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
@@ -17,6 +15,9 @@
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * NOTES
+ *  o Messaging interface required for both DirectPlay and DirectPlayLobby.
  */
 
 #include <stdarg.h>
@@ -509,4 +510,3 @@
        wCommandId, DPLAYX_HresultToString( lpcErrorMsg->errorCode) );
   DebugBreak();
 }
-
diff --git a/dlls/dplayx/dplayx_queue.h b/dlls/dplayx/dplayx_queue.h
index 9ca3abd..814f684 100644
--- a/dlls/dplayx/dplayx_queue.h
+++ b/dlls/dplayx/dplayx_queue.h
@@ -15,6 +15,12 @@
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * NOTES
+ *  o Linked list implementation for dplay/dplobby. Based off of the BSD
+ *    version found in <sys/queue.h>
+ *  o Port it to <wine/list.h> ?
+ *
  */
 
 #ifndef __WINE_DPLAYX_QUEUE_H
diff --git a/documentation/status/directplay b/documentation/status/directplay
deleted file mode 100644
index 1933a80..0000000
--- a/documentation/status/directplay
+++ /dev/null
@@ -1,172 +0,0 @@
-This file contains information on the implementation of the direct play
-and direct play lobby features. There's lots to do and I'm not exactly
-implementing it overnight! Please lend a hand.
-
-Most methods and APIs are but stubs at this point. Examine the code
-to see what has been implemented. Use -debugmsg +dplay to get a 
-reasonably thourough description of what's going on.
-
-Associated DirectX user header files are include/dplay.h, include/dplobby.h.
-
-Implementation of the DPLAY and DPLAYX dlls are both in the dlls/dplayx
-directory. Here's a brief description of the function of each of the files in that
-directory:
-
-dplay.c: Implementation of all the direct play object interfaces.
-
-dplobby.c: Implementation of all the direct play lobby interfaces.
-
-dpclassfactory.c: Implementation of the COM class factory which can create either
-                  direct play lobby or direct play lobby interfaces.
-
-dpinit.h: Header file so that dpclassfactory.c can access dplay and dplobby query 
-          functions. Shouldn't be included by anything else.
-
-dplayx_global.h,
-dplayx_global.c: Implementation of all things which are associated with dplay on
-                 the computer - ie shared resources and such. Methods in this
-                 compilation unit should not call anything out side this unit
-                 excepting base windows services and an interface to start the
-                 messaging thread.
-
-name_server.h,
-name_server.c: Implementation of all things which are associated with the name
-               server functionality
-
-dplayx_main.c: LibMain executed for loading and unloading the dll. This will make
-               the call to dplayx_global.c to request initialization and destruction
-               of any global data.
-
-dplayx_queue.h: Linked list implementation for dplay/dplobby. Based off of the BSD
-                version found in <sys/queue.h>
-
-dplayx_messages.h,
-dplayx_messages.c: Messaging interface required for both DirectPlay and 
-                   DirectPlayLobby.
-
-dplaysp.c,
-dplaysp.h: COM interface between DPLAYX and the service provider dlls. dplaysp.h is
-           something that should be included into any service provider. Basically 
-           the COM interface is partially documented but is generally lacking in the
-           finer points.
-
-Presently the architectural relationship between this files is a little shakey, but
-isn't so sufficiently bad that it needs fixing yet.
-
-I think I can safely say that any application which requires direct play
-or direct play lobby will not work at this point. Priority will be to get
-examples from the sdk running. Once they're at least partially working, I can
-get down to trying to get some of the games working.
-
-However, now that address separation is a reality, all binary samples provided 
-in the sdk can be used. I have had success spawning processes and one
-directx7 example will allow creation of an app and allow another to join it.
-Unfortunately, there isn't much for it to be able to do give the state of
-inter directlobby or directplay messaging.
-
-Messages which work:
-
-For session enumeration: DPMSGCMD_ENUMSESSIONSREPLY & DPMSGCMD_ENUMSESSIONSREQUEST
-                         have most fields understood, but not all. Everything _seems_
-                         to work.
-
-For playerid requesting: DPMSGCMD_REQUESTNEWPLAYERID & DPMSGCMD_NEWPLAYERIDREPLY
-                         barely work. This needs to be completed for sessions to be
-                         able to actually start.
-
-A small issue will be the fact that DirectX 6.1(ie. DirectPlay4) introduces a layer of functionality
-inside the DP objects which provide guaranteed protocol delivery. This is
-even if the native protocol, IPX or modem for instance, doesn't guarantee it. I'm going to leave
-this kind of implementation to as close to the end as possible. However, I
-will implement an abstraction layer, where possible, for this functionality. 
-It will do nothing to start, but will require only the implementation of the 
-guaranteness to give final implementation.
-
-
-TODO:
-  - (done) Header files for DP4 and DPL3 
-  - (done) Add stub functions for all DP4 and DPL3 interfaces
-  - (done) Correct naming of the parameters for DP3 and DPL2
-  - (done) Separate out DP and DPL into multiple .c files
-  - (done) Allow CoCreateInstance to create the new interfaces
-  - (started)Implement mutual exclusion on object data for existing functions
-  - (done) Create and move to correct dll directories (dplay and dplayx)
-  - (done) Implement dplay in terms of dplayx
-  - (done) Need a better internal implementation for the objects which scales and 
-    preferably doesn't involve casting structures. Solution is a crude ctor/dtor
-    which can actually trap some runtime errors.
-  - (done) More generic initialization and destruction helper methods based off
-    the chosen internal implementation. Solution is a crude ctor/dtor.
-  - Use only windows routines where an equivalent is available
-  - (done) Fix wine dplay.h and dplobby.h header files to allow apps to create the ansi versions
-  - (started) Port some WineLib test programs using sdk programs (both C and C++ progs)  
-  - (done) Implement a lib main for the dplayx dll (required for RunApplication, etc.)
-  - (done)Figure out how to share the global memory correctly
-  - Ensure that all dll stubs are present and the ordinals are correct
-  - (started) Implementation of functionality
-  - Addition of DirectX 7.0 functionality for direct play (try to catch that moving train)
-  - bug fixes ;)
-  - Implement some WineLib test programs using sdk programs as a skeleton
-  - (done) Change all RegEnumKey calls to RegEnumKeyEx.
-  - Change RegEnumKeyEx enumeration pattern to allow error handling and to
-    share registry implementation (or at least simplify).
-  - Add in appropriate RegCloseKey calls for all the opening we're doing...
-  - Fix all the buffer sizes for registry calls. They're off by one - but in a safe direction.
-  - (done) Find out how to call the service provider dlls - they don't have a published interface!
-  - Fix race condition on interface destruction
-  - Handles need to be correctly reference counted
-  - Need to check if we need to deallocate any list objects when destroying 
-    dplay interface
-  - RunApplication process spawning needs to have correct syncronization.
-  - Need to get inter lobby messages working.
-  - Decypher dplay messages between applications and implement...
-  - Need to implement lobby session spawning.
-
-ENHANCEMENTS:
-  - Improve footprint and realtime blocking by setting up a separate data share
-    between lobby application and client since there can be multiple apps per 
-    client. Also get rid of offset dependency by making data offset independent 
-    somehow.
-  - Handle everything in UNICODE (as server does) and do conversions for ANSI 
-    interfaces. Should cut down on dplayx code base and maintanability (marginally)
-    and could be used to improve efficiency of dialog with the server (it wouldn't
-    have to do ANSI<->UNICODE transformations).
-
-
-
-Programs to make work:
-  - lserver.exe (from sdk)
-  - override.exe (from sdk)
-  - dpchat.exe (from sdk)
-  - duel.exe (from sdk)
-  - dplaunch.exe (from sdk)
-
-Next API to implement on a per SDK program basis:
-  override.exe
-  - (calls dpserial so basic problems with that remain)
-  - after that ?
-
-  dplaunch.exe
-  - I think that everything is basically working. The launched app may not
-    work on the other hand.
-
-  lserver.exe
-  - Missing messaging portion. Everything else works.
- 
-  bellhop.exe
-  - Need to implement lobby server support.
-  - ?
-
-  dpslots.exe
-  - Works as host except for message stuff
-  - Missing correct handling of receipt of playerid
-
-Other TODO:
-
-- look at problem with parsing the resource file for dplaunch. wrc problem?
-- I should be getting the dialog box to come up for dpchat when something is selected
-Call OLE32.7: CoCreateInstance(010017f0,00000000,00000001,010017e0,010094b4) ret=01002f38 fs=0237
-Call ADVAPI32.188: RegOpenKeyExA(80000002,5e08dd90 "Software\\Microsoft\\DirectPlay\\Compatibility",00000000,00020019,40e7f49c) ret=5e0b6e5a fs=0237
-
-   
-Peter Hunnisett  -  hunnise@nortelnetworks.com
