diff --git a/ChangeLog b/ChangeLog
index 53bc8b4b3b30e5969ca95df89d2c8b29325884ab..aa53d9383ffb27bfc540efce8a03cdceafe68cca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -277,3 +277,4 @@
 	* Added netdev_foreach() to support traversal of registered network devices
 	* Added support for 'ifconfig' command to NSH (examples/nsh)
 	* Moved MAC and ethernet definitions to net/ethernet.h
+	* Fix sim and DM90x0 compilation errors introduced in 0.3.4
diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
index 39a9bd32f10171f7cf27bad535a59abef957a561..0ae087aa1c7c0c29416fbd63a3241a49772dae9a 100644
--- a/Documentation/NuttX.html
+++ b/Documentation/NuttX.html
@@ -971,6 +971,7 @@ Other memory:
 	* Added netdev_foreach() to support traversal of registered network devices
 	* Added support for 'ifconfig' command to NSH (examples/nsh)
 	* Moved MAC and ethernet definitions to net/ethernet.h
+	* Fix sim and DM90x0 compilation errors introduced in 0.3.4
 </pre></ul>
 
 <table width ="100%">
diff --git a/arch/sim/src/up_uipdriver.c b/arch/sim/src/up_uipdriver.c
index d5d2ecbfc510037736936987a00174add6f36219..a035d753cb3838b7367e2d900b8ee7c3328d3c31 100644
--- a/arch/sim/src/up_uipdriver.c
+++ b/arch/sim/src/up_uipdriver.c
@@ -61,7 +61,7 @@
  * Private Definitions
  ****************************************************************************/
 
-#define BUF ((struct uip_eth_hdr *)g_sim_dev.d_buf)
+#define BUF ((struct ether_header*)g_sim_dev.d_buf)
 
 /****************************************************************************
  * Private Types
@@ -107,9 +107,9 @@ void timer_reset(struct timer *t)
 #ifdef CONFIG_NET_PROMISCUOUS
 # define up_comparemac(a,b) (0)
 #else
-static inline int up_comparemac(struct ether_addr *paddr1, struct ether_addr *paddr2)
+static inline int up_comparemac(uint8 *paddr1, struct ether_addr *paddr2)
 {
-  return memcmp(paddr1, paddr2, sizeof(struct ether_addr));
+  return memcmp(paddr1, paddr2->ether_addr_octet, ETHER_ADDR_LEN);
 }
 #endif
 
@@ -156,14 +156,14 @@ void uipdriver_loop(void)
        * MAC address
        */
 
-      if (g_sim_dev.d_len > UIP_LLH_LEN && up_comparemac( &BUF->dest, &g_sim_dev.d_mac) == 0)
+      if (g_sim_dev.d_len > UIP_LLH_LEN && up_comparemac(BUF->ether_dhost, &g_sim_dev.d_mac) == 0)
         {
           /* We only accept IP packets of the configured type and ARP packets */
 
 #ifdef CONFIG_NET_IPv6
-          if (BUF->type == htons(UIP_ETHTYPE_IP6))
+          if (BUF->ether_type == htons(UIP_ETHTYPE_IP6))
 #else
-          if (BUF->type == htons(UIP_ETHTYPE_IP))
+          if (BUF->ether_type == htons(UIP_ETHTYPE_IP))
 #endif
             {
               uip_arp_ipin();
@@ -180,7 +180,7 @@ void uipdriver_loop(void)
                   tapdev_send(g_sim_dev.d_buf, g_sim_dev.d_len);
                 }
             }
-          else if (BUF->type == htons(UIP_ETHTYPE_ARP))
+          else if (BUF->ether_type == htons(UIP_ETHTYPE_ARP))
             {
               uip_arp_arpin(&g_sim_dev);
 
@@ -202,7 +202,7 @@ void uipdriver_loop(void)
   else if (timer_expired(&g_periodic_timer))
     {
       timer_reset(&g_periodic_timer);
-      uip_poll(&g_sim_dev, sim_uiptxpoll, 1);
+      uip_timer(&g_sim_dev, sim_uiptxpoll, 1);
     }
   sched_unlock();
 }
diff --git a/drivers/net/dm90x0.c b/drivers/net/dm90x0.c
index 3fbb0f1f4048a663617be7907bf49a261f35ef37..746aef849968343ce2548aba506236a3eb5770df 100644
--- a/drivers/net/dm90x0.c
+++ b/drivers/net/dm90x0.c
@@ -1106,7 +1106,7 @@ static void dm9x_txdone(struct dm9x_driver_s *dm9x)
 
 static int dm9x_interrupt(int irq, FAR void *context)
 {
-#if CONFIG_C5471_NET_NINTERFACES == 1
+#if CONFIG_DM9X_NINTERFACES == 1
   register struct dm9x_driver_s *dm9x = &g_dm9x[0];
 #else
 # error "Additional logic needed to support multiple interfaces"
diff --git a/examples/uip/main.c b/examples/uip/main.c
index b20b6c8265e55451a4cc77aa8f89ebc33df3b753..fd67ff95ffd013c708258cc85b1cab909d21647d 100644
--- a/examples/uip/main.c
+++ b/examples/uip/main.c
@@ -230,7 +230,9 @@ int user_start(int argc, char *argv[])
     {
       sleep(3);
       printf("main: Still running\n");
+#if CONFIG_NFILE_DESCRIPTORS > 0
       fflush(stdout);
+#endif
     }
   return 0;
 }
diff --git a/netutils/webserver/httpd-cgi.c b/netutils/webserver/httpd-cgi.c
index 9561d19896d418b79ec655de03aeb3425b667693..baf671fa8ef8c2d010f130c7715157237664ccc9 100644
--- a/netutils/webserver/httpd-cgi.c
+++ b/netutils/webserver/httpd-cgi.c
@@ -166,11 +166,12 @@ static void net_stats(struct httpd_state *pstate, char *ptr)
 {
 #ifdef CONFIG_NET_STATISTICS
   char buffer[16];
+  int i;
 
-  for(pstate->count = 0; pstate->count < sizeof(uip_stat) / sizeof(uip_stats_t); ++pstate->count)
+  for (i = 0; i < sizeof(uip_stat) / sizeof(uip_stats_t); i++)
     {
-      snprintf(buffer, 16, "%5u\n", ((uip_stats_t *)&uip_stat)[pstate->count]);
-      send(pstate->sockout, buffer, strlen(buffer), 0);
+      snprintf(buffer, 16, "%5u\n", ((uip_stats_t *)&uip_stat)[i]);
+      send(pstate->ht_sockfd, buffer, strlen(buffer), 0);
     }
 #endif
 }