diff --git a/ChangeLog b/ChangeLog
index 122ab4148e99aa9aa74a716e44d5af8f60178ae6..6bfbedeef0b550a8b4ca3e6286e1ab316969ecf9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1794,3 +1794,6 @@
 	* lib/stdio/lib_asprintf.c: Add asprintf()
 	* configs/olimex-lpc1766stk/ftpc:  Add a configuration to support
 	  testing of the FTP client shell.
+	* fd/fs_fdopen.c and net/net_checksd.c: Add support so that fdopen may
+	  be used with socket descriptors.
+
diff --git a/configs/olimex-lpc1766stk/ftpc/defconfig b/configs/olimex-lpc1766stk/ftpc/defconfig
index 8e2a756689e6eb920dda34b91b4d619c0cb3d59c..abbd6a63ec9be9ea0062c92161f6798be3661aea 100755
--- a/configs/olimex-lpc1766stk/ftpc/defconfig
+++ b/configs/olimex-lpc1766stk/ftpc/defconfig
@@ -115,7 +115,7 @@ CONFIG_LPC17_CAN1=n
 CONFIG_LPC17_CAN2=n
 CONFIG_LPC17_SPI=n
 CONFIG_LPC17_SSP0=n
-CONFIG_LPC17_SSP1=n
+CONFIG_LPC17_SSP1=y
 CONFIG_LPC17_I2C0=n
 CONFIG_LPC17_I2C1=n
 CONFIG_LPC17_I2S=n
@@ -195,10 +195,10 @@ CONFIG_UART3_2STOP=0
 # CONFIG_NET_PRIORITY - Ethernet interrupt priority.  The is default is
 #   the higest priority.
 # CONFIG_NET_WOL - Enable Wake-up on Lan (not fully implemented).
-# CONFIG_NET_REGDEBUG - Enabled low level register debug.  Also needs
-#   CONFIG_DEBUG.
 # CONFIG_NET_DUMPPACKET - Dump all received and transmitted packets.
 #   Also needs CONFIG_DEBUG.
+# CONFIG_NET_REGDEBUG - Enabled low level register debug.  Also needs
+#   CONFIG_DEBUG.
 # CONFIG_NET_HASH - Enable receipt of near-perfect match frames.
 # CONFIG_NET_MULTICAST - Enable receipt of multicast (and unicast) frames.
 #   Automatically set if CONFIG_NET_IGMP is selected.
@@ -207,6 +207,9 @@ CONFIG_PHY_KS8721=y
 CONFIG_PHY_AUTONEG=y
 CONFIG_PHY_SPEED100=n
 CONFIG_PHY_FDUPLEX=y
+CONFIG_NET_EMACRAM_SIZE=8192
+CONFIG_NET_NTXDESC=7
+CONFIG_NET_NRXDESC=7
 CONFIG_NET_REGDEBUG=n
 
 #
@@ -330,9 +333,9 @@ CONFIG_ARCH_LOWPUTC=y
 CONFIG_RR_INTERVAL=200
 CONFIG_SCHED_INSTRUMENTATION=n
 CONFIG_TASK_NAME_SIZE=0
-CONFIG_START_YEAR=2010
-CONFIG_START_MONTH=11
-CONFIG_START_DAY=23
+CONFIG_START_YEAR=2011
+CONFIG_START_MONTH=6
+CONFIG_START_DAY=2
 CONFIG_GREGORIAN_TIME=n
 CONFIG_JULIAN_TIME=n
 CONFIG_DEV_CONSOLE=y
@@ -343,7 +346,7 @@ CONFIG_SEM_PREALLOCHOLDERS=0
 CONFIG_SEM_NNESTPRIO=0
 CONFIG_FDCLONE_DISABLE=n
 CONFIG_FDCLONE_STDIO=n
-CONFIG_SDCLONE_DISABLE=n
+CONFIG_SDCLONE_DISABLE=y
 CONFIG_SCHED_WORKQUEUE=n
 CONFIG_SCHED_WORKPRIORITY=50
 CONFIG_SCHED_WORKPERIOD=(50*1000)
@@ -351,7 +354,8 @@ CONFIG_SCHED_WORKSTACKSIZE=1024
 CONFIG_SIG_SIGWORK=4
 
 #
-# Settings for nxflat
+# Settings for NXFLAT
+#
 # CONFIG_NXFLAT. Enable support for the NXFLAT binary format.
 #  This format will support execution of NuttX binaries located
 #  in a ROMFS filesystem (see examples/nxflat).
@@ -382,10 +386,10 @@ CONFIG_SYMTAB_ORDEREDBYNAME=y
 #   up waiting tasks.
 #
 CONFIG_DISABLE_CLOCK=n
-CONFIG_DISABLE_POSIX_TIMERS=y
-CONFIG_DISABLE_PTHREAD=y
+CONFIG_DISABLE_POSIX_TIMERS=n
+CONFIG_DISABLE_PTHREAD=n
 CONFIG_DISABLE_SIGNALS=n
-CONFIG_DISABLE_MQUEUE=y
+CONFIG_DISABLE_MQUEUE=n
 CONFIG_DISABLE_MOUNTPOINT=n
 CONFIG_DISABLE_ENVIRON=n
 CONFIG_DISABLE_POLL=n
@@ -452,14 +456,14 @@ CONFIG_ARCH_BZERO=n
 #
 CONFIG_MAX_TASKS=16
 CONFIG_MAX_TASK_ARGS=4
-CONFIG_NPTHREAD_KEYS=0
+CONFIG_NPTHREAD_KEYS=4
 CONFIG_NFILE_DESCRIPTORS=8
 CONFIG_NFILE_STREAMS=8
 CONFIG_NAME_MAX=32
-CONFIG_STDIO_BUFFER_SIZE=64
-CONFIG_NUNGET_CHARS=0
-CONFIG_PREALLOC_MQ_MSGS=0
-CONFIG_MQ_MAXMSGSIZE=0
+CONFIG_STDIO_BUFFER_SIZE=256
+CONFIG_NUNGET_CHARS=2
+CONFIG_PREALLOC_MQ_MSGS=4
+CONFIG_MQ_MAXMSGSIZE=32
 CONFIG_MAX_WDOGPARMS=2
 CONFIG_PREALLOC_WDOGS=8
 CONFIG_PREALLOC_TIMERS=8
@@ -471,8 +475,8 @@ CONFIG_PREALLOC_TIMERS=8
 # CONFIG_FAT_SECTORSIZE - Max supported sector size
 # CONFIG_FS_ROMFS - Enable ROMFS filesystem support
 #
-CONFIG_FS_FAT=n
-CONFIG_FS_ROMFS=y
+CONFIG_FS_FAT=y
+CONFIG_FS_ROMFS=n
 
 #
 # SPI-based MMC/SD driver
@@ -543,17 +547,17 @@ CONFIG_NET=y
 CONFIG_NET_IPv6=n
 CONFIG_NSOCKET_DESCRIPTORS=16
 CONFIG_NET_SOCKOPTS=y
-CONFIG_NET_BUFSIZE=420
+CONFIG_NET_BUFSIZE=562
 CONFIG_NET_TCP=y
 CONFIG_NET_TCP_CONNS=16
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
+CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
 CONFIG_NET_TCPBACKLOG=y
 CONFIG_NET_MAX_LISTENPORTS=8
 CONFIG_NET_UDP=n
 CONFIG_NET_UDP_CHECKSUMS=y
 #CONFIG_NET_UDP_CONNS=10
 CONFIG_NET_ICMP=y
-CONFIG_NET_ICMP_PING=n
+CONFIG_NET_ICMP_PING=y
 #CONFIG_NET_PINGADDRCONF=0
 CONFIG_NET_STATISTICS=n
 #CONFIG_NET_RECEIVE_WINDOW=
@@ -598,7 +602,30 @@ CONFIG_USBDEV_TRACE=n
 CONFIG_USBDEV_TRACE_NRECORDS=128
 
 #
-# LPC17xx USB Configuration
+# USB Host Configuration
+#
+# CONFIG_USBHOST
+#   Enables USB host support
+# CONFIG_USBHOST_NPREALLOC
+#   Number of pre-allocated class instances
+# CONFIG_USBHOST_BULK_DISABLE
+#   On some architectures, selecting this setting will reduce driver size
+#   by disabling bulk endpoint support
+# CONFIG_USBHOST_INT_DISABLE
+#   On some architectures, selecting this setting will reduce driver size
+#   by disabling interrupt endpoint support
+# CONFIG_USBHOST_ISOC_DISABLE
+#   On some architectures, selecting this setting will reduce driver size
+#   by disabling isochronous endpoint support
+#
+CONFIG_USBHOST=n
+CONFIG_USBHOST_NPREALLOC=0
+CONFIG_USBHOST_BULK_DISABLE=n
+CONFIG_USBHOST_INT_DISABLE=y
+CONFIG_USBHOST_ISOC_DISABLE=y
+
+#
+# LPC17xx USB Device Configuration
 #
 # CONFIG_LPC17_USBDEV_FRAME_INTERRUPT
 #   Handle USB Start-Of-Frame events. 
@@ -619,6 +646,30 @@ CONFIG_LPC17_USBDEV_DMA=n
 CONFIG_LPC17_USBDEV_NDMADESCRIPTORS=0
 CONFIG_LPC17_USBDEV_DMAINTMASK=0
 
+#
+# LPC17xx USB Host Configuration
+#
+# OHCI RAM layout:
+# CONFIG_USBHOST_OHCIRAM_SIZE
+#   Total size of OHCI RAM (in AHB SRAM Bank 1)
+# CONFIG_USBHOST_NEDS
+#   Number of endpoint descriptors
+# CONFIG_USBHOST_NTDS
+#   Number of transfer descriptors
+# CONFIG_USBHOST_TDBUFFERS
+#   Number of transfer descriptor buffers
+# CONFIG_USBHOST_TDBUFSIZE
+#   Size of one transfer descriptor buffer
+# CONFIG_USBHOST_IOBUFSIZE
+#   Size of one end-user I/O buffer
+#
+CONFIG_USBHOST_OHCIRAM_SIZE=1536
+CONFIG_USBHOST_NEDS=2
+CONFIG_USBHOST_NTDS=3
+CONFIG_USBHOST_TDBUFFERS=3
+CONFIG_USBHOST_TDBUFSIZE=128
+CONFIG_USBHOST_IOBUFSIZE=512
+
 #
 # USB Serial Device Configuration
 #
@@ -866,10 +917,10 @@ CONFIG_NSH_DISABLEBG=n
 CONFIG_NSH_ROMFSETC=n
 CONFIG_NSH_CONSOLE=y
 CONFIG_NSH_TELNET=n
-CONFIG_NSH_ARCHINIT=n
+CONFIG_NSH_ARCHINIT=y
 CONFIG_NSH_IOBUFFER_SIZE=512
 CONFIG_NSH_DHCPC=n
-CONFIG_NSH_NOMAC=n
+CONFIG_NSH_NOMAC=y
 CONFIG_NSH_IPADDR=(10<<24|0<<16|0<<8|2)
 CONFIG_NSH_DRIPADDR=(10<<24|0<<16|0<<8|1)
 CONFIG_NSH_NETMASK=(255<<24|255<<16|255<<8|0)
@@ -890,7 +941,7 @@ CONFIG_NSH_DISABLE_GET=y
 #
 # Architecture-specific NSH options
 #
-CONFIG_NSH_MMCSDSPIPORTNO=0
+CONFIG_NSH_MMCSDSPIPORTNO=1
 CONFIG_NSH_MMCSDSLOTNO=0
 CONFIG_NSH_MMCSDMINOR=0
 
@@ -945,7 +996,7 @@ CONFIG_BOOT_COPYTORAM=n
 CONFIG_CUSTOM_STACK=n
 CONFIG_STACK_POINTER=
 CONFIG_IDLETHREAD_STACKSIZE=1024
-CONFIG_USERMAIN_STACKSIZE=8192
+CONFIG_USERMAIN_STACKSIZE=2048
 CONFIG_PTHREAD_STACK_MIN=256
 CONFIG_PTHREAD_STACK_DEFAULT=2048
 CONFIG_HEAP_BASE=
diff --git a/configs/olimex-lpc1766stk/nsh/defconfig b/configs/olimex-lpc1766stk/nsh/defconfig
index c177f11ef53ca680485dfcceb775915e8137b95e..89175c4fba5f71314addb0a6197e3723b8649170 100755
--- a/configs/olimex-lpc1766stk/nsh/defconfig
+++ b/configs/olimex-lpc1766stk/nsh/defconfig
@@ -64,7 +64,7 @@
 # CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
 #   cause a 100 second delay during boot-up.  This 100 second delay
 #   serves no purpose other than it allows you to calibrate
-#   CONFIG_BOARD_LOOPSPERMSEC.  You simply use a stop watch to measure
+# CONFIG_BOARD_LOOPSPERMSEC.  You simply use a stop watch to measure
 #   the 100 second delay then adjust CONFIG_BOARD_LOOPSPERMSEC until
 #   the delay actually is 100 seconds.
 # CONFIG_ARCH_DMA - Support DMA initialization
@@ -350,13 +350,29 @@ CONFIG_SEM_NNESTPRIO=0
 CONFIG_FDCLONE_DISABLE=n
 CONFIG_FDCLONE_STDIO=n
 CONFIG_SDCLONE_DISABLE=y
-CONFIG_NXFLAT=n
 CONFIG_SCHED_WORKQUEUE=n
 CONFIG_SCHED_WORKPRIORITY=50
 CONFIG_SCHED_WORKPERIOD=(50*1000)
 CONFIG_SCHED_WORKSTACKSIZE=1024
 CONFIG_SIG_SIGWORK=4
 
+#
+# Settings for NXFLAT
+#
+# CONFIG_NXFLAT. Enable support for the NXFLAT binary format.
+#  This format will support execution of NuttX binaries located
+#  in a ROMFS filesystem (see examples/nxflat).
+# CONFIG_NXFLAT_DUMPBUFFER. Dump a most buffers that NXFFLAT deals
+#  with.  CONFIG_DEBUG, CONFIG_DEBUG_VERBOSE, and
+#  CONFIG_DEBUG_BINFMT have to be defined or
+#  CONFIG_NXFLAT_DUMPBUFFER does nothing.
+# CONFIG_SYMTAB_ORDEREDBYNAME. Select if the system symbol table
+#  is ordered by symbol name
+#
+CONFIG_NXFLAT=y
+CONFIG_NXFLAT_DUMPBUFFER=n
+CONFIG_SYMTAB_ORDEREDBYNAME=y
+
 #
 # The following can be used to disable categories of
 # APIs supported by the OS.  If the compiler supports
diff --git a/net/getsockname.c b/net/getsockname.c
index a77a31b71f2ef84e3c60f7c6727aa5f737138ff2..3af89b7621a3c823287358b961f88286f13c40a6 100644
--- a/net/getsockname.c
+++ b/net/getsockname.c
@@ -131,9 +131,9 @@ int getsockname(int sockfd, FAR struct sockaddr *addr, FAR socklen_t *addrlen)
   /* Check if enough space has been provided for the full address */
 
 #ifdef CONFIG_NET_IPv6
-  if (addr->sa_family != AF_INET6 || *addrlen < sizeof(struct sockaddr_in6))
+  if (*addrlen < sizeof(struct sockaddr_in6))
 #else
-  if (addr->sa_family != AF_INET || *addrlen < sizeof(struct sockaddr_in))
+  if (*addrlen < sizeof(struct sockaddr_in))
 #endif
   {
     /* This function is supposed to return the partial address if