diff --git a/configs/lm3s6965-ek/nx/defconfig b/configs/lm3s6965-ek/nx/defconfig
index de6ae2a1587e3c79881e164865e43a7e8b80ec6e..9bcd7b5571502b96beba60d01c5aadc376f9f41a 100755
--- a/configs/lm3s6965-ek/nx/defconfig
+++ b/configs/lm3s6965-ek/nx/defconfig
@@ -568,7 +568,7 @@ CONFIG_LCD_MAXCONTRAST=255
 CONFIG_NX_MOUSE=y
 CONFIG_NX_KBD=y
 #CONFIG_NXTK_BORDERWIDTH=4
-CONFIG_NXTK_BORDERCOLOR1=6
+CONFIG_NXTK_BORDERCOLOR1=8
 CONFIG_NXTK_BORDERCOLOR2=4
 CONFIG_NXTK_AUTORAISE=n
 CONFIG_NXFONT_SANS=y
diff --git a/drivers/lcd/p14201.c b/drivers/lcd/p14201.c
index ecb040af5d164731dc0c243f26ac511b5969e640..6f41f7f3bfda5a2b9d10a80c141adc32eeddd272 100755
--- a/drivers/lcd/p14201.c
+++ b/drivers/lcd/p14201.c
@@ -729,37 +729,30 @@ static int rit_putrun(fb_coord_t row, fb_coord_t col, FAR const uint8_t *buffer,
    * the run starts at &run[start] and continues through run[end-1].
    * However, the first and final pixels at these locations may
    * not be byte aligned.
+   */
+
+  start = col >> 1;
+  aend  = (col + npixels) >> 1;
+  end   = (col + npixels + 1) >> 1;
+  ritdbg("start: %d aend: %d end: %d\n", start, aend, end);
+
+  /* Copy the run into the framebuffer, handling nibble alignment.
    *
-   *  example col=7 npixels = 8           example col=6 npixels=8
+   * CASE 1: First pixel X position is byte aligned
+   *
+   *  example col=6 npixels = 8           example col=6 npixels=7
    *
    *  Run:    |AB|AB|AB|AB|               |AB|AB|AB|AB|
    *  GDDRAM row:
-   *  Byte    | 0| 1| 2| 3| 4| 5| 6| 7|   | 0| 1| 2| 3| 4| 5| 6|
-   *  Pixel:  |--|--|--|-A|BA|BA|BA|B-|   |--|--|--|AB|AB|AB|AB|
+   *  Byte    | 0| 1| 2| 3| 4| 5| 6|      | 0| 1| 2| 3| 4| 5| 6|
+   *  Pixel:  |--|--|--|AB|AB|AB|AB|      |--|--|--|AB|AB|AB|A-|
    *
    *  start = 3                           start = 3
-   *  aend  = 7                           aend  = 7
-   *  end   = 8                           end   = 7
-   *
-   *  example col=7 npixels = 1           example col=7 npixels=2
-   *
-   *  Run:    |A-|                        |AB|
-   *  GDDRAM row:
-   *  Byte    | 0| 1| 2| 3|               | 0| 1| 2| 3| 4|
-   *  Pixel:  |--|--|--|-A|               |--|--|--|-A|B-|
+   *  aend  = 6                           aend  = 6
+   *  end   = 6                           end   = 7
    *
-   *  start = 3                           start = 3
-   *  aend  = 4                           aend  = 4
-   *  end   = 4                           end   = 5
    */
 
-  start = col >> 1;
-  aend  = (col + npixels) >> 1;
-  end   = (col + npixels + 1) >> 1;
-  ritdbg("start: %d aend: %d end: %d\n", start, aend, end);
-
-  /* Copy the run into the framebuffer, handling nibble alignment */
-
   if ((col & 1) == 0)
     {
       /* Check for the special case of only 1 pixel being blitted */
@@ -771,7 +764,10 @@ static int rit_putrun(fb_coord_t row, fb_coord_t col, FAR const uint8_t *buffer,
           memcpy(&run[start], buffer, aend - start + 1);
         }
 
-       /* Handle any final pixel (including the special case where npixels == 1). */
+       /* An even number of byte-aligned pixel pairs have been written (where
+        * zero counts as an even number).  If npixels was was odd (including
+        * npixels == 1), then handle the final, byte aligned pixel.
+        */
 
        if (aend != end)
          {
@@ -782,6 +778,21 @@ static int rit_putrun(fb_coord_t row, fb_coord_t col, FAR const uint8_t *buffer,
             run[aend] = (run[aend] & 0x0f) | (buffer[aend - start] & 0xf0);
          }
     }
+
+  /* CASE 2: First pixel X position is byte aligned
+   *
+   *  example col=7 npixels = 8           example col=7 npixels=7
+   *
+   *  Run:    |AB|AB|AB|AB|               |AB|AB|AB|AB|
+   *  GDDRAM row:
+   *  Byte    | 0| 1| 2| 3| 4| 5| 6| 7|   | 0| 1| 2| 3| 4| 5| 6|
+   *  Pixel:  |--|--|--|-A|BA|BA|BA|B-|   |--|--|--|-A|BA|BA|BA|
+   *
+   *  start = 3                           start = 3
+   *  aend  = 7                           aend  = 7
+   *  end   = 8                           end   = 7
+   */
+
   else
     {
       uint8_t curr = buffer[0];
@@ -809,7 +820,10 @@ static int rit_putrun(fb_coord_t row, fb_coord_t col, FAR const uint8_t *buffer,
           run[i] = (last << 4) | (curr >> 4);
         }
       
-      /* Handle any final pixel (including the special case where npixels == 1). */
+       /* An odd number of unaligned pixel have been written (where npixels
+        * may have been as small as one).  If npixels was was even, then handle
+        * the final, unaligned pixel.
+        */
 
       if (aend != end)
         {