diff --git a/ChangeLog b/ChangeLog
index b757197851e624348710450d35321247708baccd..12f492a15a7b3f2b2bfa1a7a62da78526d512ad5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -563,7 +563,7 @@
 	* Fixed a bug in getopt().  It would fail if on certain combinations of terminal argument
 	  types.
 
-0.3.19 2008-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
+0.3.19 2008-11-26 Gregory Nutt <spudmonkey@racsa.co.cr>
 	* Add poll() and select() APIs (in the initial check-in, these work only with character devices) 
 	* Add poll() methods to /dev/null, /dev/zero, pipes, fifos, and serial drivers.
 	* Add examples/poll for testing poll() and select()
@@ -587,3 +587,5 @@
 	* Added a framebuffer driver for the DM320 (untested on initial check-in)
 	* Network: add support for outgoing multicast addresses
 	* Added some rasterizers to the graphics library
+
+0.3.20 2008-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
index b752096b6014c2c273b9a9dd7bc308c42352c399..c8aa054e0c4d637160115e1bee4a5bc611ccb386 100644
--- a/Documentation/NuttX.html
+++ b/Documentation/NuttX.html
@@ -480,6 +480,26 @@
     </p>
 </tr>
 
+<tr>
+  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
+  <td bgcolor="#5eaee1">
+    <b>Graphics Support</b>
+  </td>
+</tr>
+<tr>
+  <td><br></td>
+  <td>
+    <p>
+      <li>Framebuffer drivers.</li>
+    </p>
+</tr>
+<tr>
+  <td><br></td>
+  <td>
+    <p>
+      <li>Graphics library and tiny windowing system under developement.</li>
+    </p>
+</tr>
 </table></center>
 
 <p>
@@ -530,8 +550,8 @@
   </tr>
 </table>
 
-<p><b>nuttx-0.3.18</b>.
-  The 30<sup>th</sup> release of NuttX (nuttx-0.3.18) is available for download
+<p><b>nuttx-0.3.19</b>.
+  The 31<sup>st</sup> release of NuttX (nuttx-0.3.19) is available for download
   from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a>
   website.
   The change log associated with the release is available <a href="#currentrelease">here</a>.
@@ -539,46 +559,43 @@
   These unreleased changes are listed <a href="#pendingchanges">here</a>.
 </p>
 <p>
-  This release includes two partially completed ports, several new features, and a
-  couple of important bug fixes.  The two partially completed ports are:
-  <ul>
-    <li>The STMicro STR71x processor and configuration for the Olimex STR-P711 board, and</li>
-    <li>The Hitachi SH-1 using the SH1_LCEVB1 (SH-1/US7032EVB1) board.</li>
-  </ul>
-</p>
+  This release includes the following new feature:
 <p>
-  Progress on these ports is stalled (as detailed in the ChangeLog).
-</p>
-<p>
-  The new features focus primarily on management of block devices and extensions of
-  the NuttShell (NSH).  These new features include:
-  <ul>
-    <li>A loop device that converts a file into a block device,</li>
-    <li>A block to character (BCH) driver that  allow access a block device as if it were character device, </li>
-    <li>Added strcasecmp() and strncasecmp() libc functions, and </li>
-    <li>Added the 'dd' and 'losetup' commands to NSH. These commands (along with mkfatfs and mount),
-        give good managment of filesystems on the target.</li>
-  </ul>
-</p>
+<ul>
+  <li>Add <code>poll()</code> and <code>select()</code> APIs that may be used to monitor for data
+    availability on character devices or TCP/IP sockets.
+  </li>
+  <li>Implemented support TCP/IP connection backlog.
+   This allows <code>poll()</code>/<code>select()</code> to wake-up on new connections to a listener socket.
+  </li>
+  <li>Added definition of a framebuffer driver and implement framebuffer drivers for the
+    simulated platform and the TI DM320 (untested as of the inital check-in).
+  </li>
+  <li>Partially developed a graphics framework based on the framebuffer drivers, however,
+    this will not be ready for use for a few more release. 
+    Currently this includes only a few color conversion routines and some rasteizing functions.
+    A tiny windowing system is under development but not ready for check-in yet.
+  <li>Added support for fixed precision math.
+  </li>
+  <li>Added support for outgoing multicast packets.
+  </li>
+</ul>
 <p>
   Several bugs were fixed, the most important of which are:
-  <ul>
-    <li>Fixd a race condition workaround delay in LPC214X SPI logic.  This was also
-        the cause of some bad MMC/SD performance on that platform.</li>
-    <li>Fixed a recently introduced FAT file system problem: It would mount a (invalid)
-        FAT file system even if the medium is not formatted!</li>
-    <li>Corrected two iother important errors in the FAT lseek implementation:
-        (1) the sectors-per-cluster value was being reset to "1" and (2) important
-        lseek logic was omitted when the seek position was zero.</li>
-  </ul>
 </p>
+  <li>Fixed an important bug in the TCP/IP buffering logic.
+    When TCP/IP read-ahead is enabled and not recv() is in-place when a TCP/IP packet is received,
+    the packet is placed into a read-ahead buffer.
+    However, the old contents of the read-ahead buffer were not being cleared and old data would 
+    contaminate the newly received buffer.
+  </li>
+  <li>Changed the behavior of the serial driver read.
+    It now returns data as it is available rather than waiting for the full requested read size.
+    This makes functions like <code>fgetc()</code> work much more smoothly.
+  </li>
 <p>
-  The FAT filesystem has had many bugs fixed in it and, I think, is now maturing
-  and becoming stable.
-</p>
-<p>
-  These changes were verified only on the mcu123.com NXP LPC2148 board, the Hitachi
-  SH1_LCEVB1 board, and the Linux simulator, all using a Linux development environment.
+  These changes were verified only on the Neuros OSD (ARM) and the Linux simulator using a
+  Linux development environment.
   Please report any errors to me.
 </p>
 
@@ -692,7 +709,7 @@
     </p>
     <p>
       <b>STATUS:</b>
-        The basic port (timer interrupts, serial ports, network, etc.) is complete.
+        The basic port (timer interrupts, serial ports, network, framebuffe, etc.) is complete.
         All implemented features have been verified with the exception of the USB device-side
         driver; that implementation is complete but completely untested.
     </p>
@@ -1136,42 +1153,30 @@ Other memory:
 </table>
 
 <pre><ul>
-nuttx-0.3.18 2008-11-16 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
-	* Added port for the STMicro STR71x processor and configuration for the Olimex STR-P711
-	  board (STR71x testing is stalled because I have been unable to get OpenOCD to
-	  communicate with my JTAG wiggler on Linux).
-	* Fix race condition workaround delay in LPC214X SPI logic.  This was also the cause of the
-	  very bad MMC/SD performance.
-	* Began port of the Hitachi SH-1 using the SH-1/US7032EVB1 board
-	* Re-built all configurations that use SDCC and Zilog toolchains to make sure they still
-	  build (they didn't, but they do now).
-	* Fixed several erroneous "list empty" checks in the CAN driver.
-	* Hitachi SH-1 passes (reduced) examples/ostest; the examples/nsh test still fails.
-	  There are remaining instabilities that make the port un-usable.  The nature of these is
-	  not understood; the behavior is that certain SH-1 instructions stop working as advertised.
-	  This could be a silicon problem, some pipeline issue that is not handled properly by the
-	  gcc 3.4.5 toolchain (which has very limit SH-1 support to begin with), or perhaps with the
-	  CMON debugger.  At any rate, I have exhausted all of the energy that I am willing to put
-	  into this cool old processor for the time being.
-	* Renamed configuration item CONFIG_PROC_STACK_SIZE as CONFIG_IDLETHREAD_STACKSIZE:  It now
-	  only controls the size of the stack for the IDLE thread.  Added CONFIG_USERMAIN_STACKSIZE:
-	  This is the size of stack used with the user_start() thread is created.  The two stacks
-	  no longer have to be the same.
-	* Add a loop device that converts a file into a block device.
-	* Each NSH command can not be disabled through a configuration setting. All of these
-	  settings make the configuration of NSH potentially complex but also allow it to squeeze
-	  into very small memory footprints.
-	* Added a block to character (BCH) driver.  This is kind of the reverse of the loop
-	  device; it allows you access a block device like a character device.
-	* NSH: Added the 'dd' command
-	* NSH: Added the 'losetup' command
-	* Fixed a FAT bug:  After recent changes, it would mount a (invalid) FAT file system
-	  even if the medium is not formatted!
-	* Corrected two important errors in FAT lseek implementation: (1) the sectors-per-cluster
-	  value was being reset to '1' and (2) important lseek logic was omitted when the seek
-	  position was zero.
-	* Fixed a bug in getopt().  It would fail if on certain combinations of terminal argument
-	  types.
+nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
+	* Add poll() and select() APIs (in the initial check-in, these work only with character devices) 
+	* Add poll() methods to /dev/null, /dev/zero, pipes, fifos, and serial drivers.
+	* Add examples/poll for testing poll() and select()
+	* Fix hostile behavior of getc, fgetc, getchar, etc.: the serial driver was waiting for a
+	  full buffer of read data before return.  This means that getc would stall when it needed
+	  to refill the input buffer. The old behavior (read full blocks) might be useful in other
+	  contexts, so it is still available within the driver as a configuration option.
+	* Implement poll() and select() support for TCP/IP sockets
+	* Fixed an important bug in the TCP/IP buffering logic.  When TCP/IP read-ahead is enabled
+	  and not recv() is in-place when a TCP/IP packet is received, the packet is placed into
+	  a read-ahead buffer.  However, the old contents of the read-ahead buffer were not being
+	  cleared and old data would contaminate the newly received buffer.
+	* Implemented support for connection backlog.  The size of the backlog is specified by the
+	  second argument of the standard listen() API.  Hooks are provided to support poll()/select()
+	  waiting for connections, with a subsequent call to accept() to use the backlogged connection.
+	* Fixed a minor bug in accept().  It should allow the address and addresslen values to be NULL
+	* Added first-cut definition for a framebuffer interface (and simulated framebuffer for testing
+	  purposes only)
+	* Added fixed precision math support
+	* Added some color converson routines into what may become a real graphics library someday.
+	* Added a framebuffer driver for the DM320 (untested on initial check-in)
+	* Network: add support for outgoing multicast addresses
+	* Added some rasterizers to the graphics library
 
 pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
 
@@ -1199,30 +1204,7 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt
 </table>
 
 <pre><ul>
-nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
-	* Add poll() and select() APIs (in the initial check-in, these work only with character devices) 
-	* Add poll() methods to /dev/null, /dev/zero, pipes, fifos, and serial drivers.
-	* Add examples/poll for testing poll() and select()
-	* Fix hostile behavior of getc, fgetc, getchar, etc.: the serial driver was waiting for a
-	  full buffer of read data before return.  This means that getc would stall when it needed
-	  to refill the input buffer. The old behavior (read full blocks) might be useful in other
-	  contexts, so it is still available within the driver as a configuration option.
-	* Implement poll() and select() support for TCP/IP sockets
-	* Fixed an important bug in the TCP/IP buffering logic.  When TCP/IP read-ahead is enabled
-	  and not recv() is in-place when a TCP/IP packet is received, the packet is placed into
-	  a read-ahead buffer.  However, the old contents of the read-ahead buffer were not being
-	  cleared and old data would contaminate the newly received buffer.
-	* Implemented support for connection backlog.  The size of the backlog is specified by the
-	  second argument of the standard listen() API.  Hooks are provided to support poll()/select()
-	  waiting for connections, with a subsequent call to accept() to use the backlogged connection.
-	* Fixed a minor bug in accept().  It should allow the address and addresslen values to be NULL
-	* Added first-cut definition for a framebuffer interface (and simulated framebuffer for testing
-	  purposes only)
-	* Added fixed precision math support
-	* Added some color converson routines into what may become a real graphics library someday.
-	* Added a framebuffer driver for the DM320 (untested on initial check-in)
-	* Network: add support for outgoing multicast addresses
-	* Added some rasterizers to the graphics library
+nuttx-0.3.20 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
 
 pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
 
diff --git a/ReleaseNotes b/ReleaseNotes
index 5af8f3573cee89e7da3a7a0fd55d28b3e00de307..6a2438cd86d25a5af2d7a1236e4ad85c36c36746 100644
--- a/ReleaseNotes
+++ b/ReleaseNotes
@@ -700,7 +700,7 @@ the NuttShell (NSH).  These include:
 
 Several bugs were fixed, the most important of which are:
 
-	* Fixd a race condition workaround delay in LPC214X SPI logic.  This was also
+	* Fixed a race condition workaround delay in LPC214X SPI logic.  This was also
 	  the cause of some bad MMC/SD performance on that platform.
 	* Fixed a recently introduced FAT file system problem: It would mount a (invalid)
 	  FAT file system even if the medium is not formatted!
@@ -717,5 +717,35 @@ Please report any errors to me.
 
 This tarball contains a complete CVS snapshot from November 16, 2008.
 
+nuttx-0.3.19
+^^^^^^^^^^^^
+
+This is the 31st release of NuttX.  This release includes the following new feature:
+
+	* Add poll() and select() APIs that may be used to monitor for data
+	  availability on character devices or TCP/IP sockets.
+	* Implemented support TCP/IP connection backlog.  This allows select to wake-up
+	  on new connections to a listener socket.
+	* Added definition of a framebuffer driver and implement framebuffer drivers
+	  for the simulated platform and the TI DM320 (untested as of the inital check-in).
+	* Partially developed a graphics framework based on the framebuffer drivers,
+	  however, this will not be ready for use for a few more release.  Currently
+	  this includes only a few color conversion routines and some rasteizing functions.
+	  A tiny windowing system is under development but not ready for check-in yet.
+	* Added support for fixed precision math.
+	* Added support for outgoing multicast packets.
+
+Several bugs were fixed, the most important of which are:
+
+	* Fixed an important bug in the TCP/IP buffering logic.  When TCP/IP read-ahead is enabled
+	  and not recv() is in-place when a TCP/IP packet is received, the packet is placed into
+	  a read-ahead buffer.  However, the old contents of the read-ahead buffer were not being
+	  cleared and old data would contaminate the newly received buffer.
+	* Changed the behavior of the serial driver read.  It now returns data as it
+	  is available rather than waiting for the full requested read size.  This
+	  makes functions like fgetc() work much more smoothly.
 
+These changes were verified only on the Neuros OSD (ARM9) using a Linux development
+environment. Please report any errors to me.
 
+This tarball contains a complete CVS snapshot from November 26, 2008.