diff --git a/net/uip/uip-tcpconn.c b/net/uip/uip-tcpconn.c
index d2e2112321aed5e266da5cb29cc8b679322e17ba..0f48a4607a8110de8a71a1a1b7f2807221439973 100644
--- a/net/uip/uip-tcpconn.c
+++ b/net/uip/uip-tcpconn.c
@@ -449,18 +449,12 @@ struct uip_conn *uip_tcpaccept(struct uip_tcpip_hdr *buf)
       uip_ipaddr_copy(conn->ripaddr, uip_ip4addr_conv(buf->srcipaddr));
       conn->tcpstateflags = UIP_SYN_RCVD;
 
-      conn->snd_nxt[0]    = g_tcp_sequence[0];
-      conn->snd_nxt[1]    = g_tcp_sequence[1];
-      conn->snd_nxt[2]    = g_tcp_sequence[2];
-      conn->snd_nxt[3]    = g_tcp_sequence[3];
+      memcpy(conn->snd_nxt, g_tcp_sequence, 4);
       conn->len           = 1;
 
       /* rcv_nxt should be the seqno from the incoming packet + 1. */
 
-      conn->rcv_nxt[3]    = buf->seqno[3];
-      conn->rcv_nxt[2]    = buf->seqno[2];
-      conn->rcv_nxt[1]    = buf->seqno[1];
-      conn->rcv_nxt[0]    = buf->seqno[0];
+      memcpy(conn->rcv_nxt, buf->seqno, 4);
 
       /* Initialize the list of TCP read-ahead buffers */
 
@@ -612,14 +606,9 @@ int uip_tcpconnect(struct uip_conn *conn, const struct sockaddr_in *addr)
   /* Initialize and return the connection structure, bind it to the port number */
 
   conn->tcpstateflags = UIP_SYN_SENT;
-
-  conn->snd_nxt[0] = g_tcp_sequence[0];
-  conn->snd_nxt[1] = g_tcp_sequence[1];
-  conn->snd_nxt[2] = g_tcp_sequence[2];
-  conn->snd_nxt[3] = g_tcp_sequence[3];
+  memcpy(conn->snd_nxt, g_tcp_sequence, 4);
 
   conn->initialmss = conn->mss = UIP_TCP_MSS;
-
   conn->len        = 1;    /* TCP length of the SYN is one. */
   conn->nrtx       = 0;
   conn->timer      = 1;    /* Send the SYN next time around. */
diff --git a/net/uip/uip-tcpinput.c b/net/uip/uip-tcpinput.c
index 11fb7cee024433a1bfa0b12b0c2453e818f5d822..8b551ca9effe75b1d034be55ccfe122293e8fe70 100644
--- a/net/uip/uip-tcpinput.c
+++ b/net/uip/uip-tcpinput.c
@@ -292,7 +292,7 @@ found:
   len = (BUF->tcpoffset >> 4) << 2;
 
   /* d_len will contain the length of the actual TCP data. This is
-   * calculated by subtracing the length of the TCP header (in
+   * calculated by subtracting the length of the TCP header (in
    * len) and the length of the IP header (20 bytes).
    */
 
@@ -307,10 +307,7 @@ found:
       ((BUF->flags & TCP_CTL) == (TCP_SYN | TCP_ACK))))
     {
       if ((dev->d_len > 0 || ((BUF->flags & (TCP_SYN | TCP_FIN)) != 0)) &&
-          (BUF->seqno[0] != conn->rcv_nxt[0] ||
-           BUF->seqno[1] != conn->rcv_nxt[1] ||
-           BUF->seqno[2] != conn->rcv_nxt[2] ||
-           BUF->seqno[3] != conn->rcv_nxt[3]))
+          memcmp(BUF->seqno, conn->rcv_nxt, 4) != 0)
         {
             uip_tcpsend(dev, conn, TCP_ACK, UIP_IPTCPH_LEN);
             return;
@@ -330,15 +327,11 @@ found:
       uint8 acc32[4];
       uip_add32(conn->snd_nxt, conn->len, acc32);
 
-      if (BUF->ackno[0] == acc32[0] && BUF->ackno[1] == acc32[1] &&
-          BUF->ackno[2] == acc32[2] && BUF->ackno[3] == acc32[3])
+      if (memcmp(BUF->ackno, acc32, 4) == 0)
         {
           /* Update sequence number. */
 
-          conn->snd_nxt[0] = acc32[0];
-          conn->snd_nxt[1] = acc32[1];
-          conn->snd_nxt[2] = acc32[2];
-          conn->snd_nxt[3] = acc32[3];
+          memcpy(conn->snd_nxt, acc32, 4);
 
           /* Do RTT estimation, unless we have done retransmissions. */
 
@@ -477,10 +470,7 @@ found:
               }
 
             conn->tcpstateflags = UIP_ESTABLISHED;
-            conn->rcv_nxt[0]    = BUF->seqno[0];
-            conn->rcv_nxt[1]    = BUF->seqno[1];
-            conn->rcv_nxt[2]    = BUF->seqno[2];
-            conn->rcv_nxt[3]    = BUF->seqno[3];
+            memcpy(conn->rcv_nxt, BUF->seqno, 4);
             nvdbg("TCP state: UIP_ESTABLISHED\n");
 
             uip_incr32(conn->rcv_nxt, 1);
diff --git a/net/uip/uip-tcpsend.c b/net/uip/uip-tcpsend.c
index ae58ad5765e4cc56aeb1b006dc4ad1b033c93bea..5b28539bb20baa18ba9ee415225e2b1fd7b6dd9a 100644
--- a/net/uip/uip-tcpsend.c
+++ b/net/uip/uip-tcpsend.c
@@ -170,18 +170,10 @@ static void uip_tcpsendcomplete(struct uip_driver_s *dev)
 
 static void uip_tcpsendcommon(struct uip_driver_s *dev, struct uip_conn *conn)
 {
-  BUF->ackno[0] = conn->rcv_nxt[0];
-  BUF->ackno[1] = conn->rcv_nxt[1];
-  BUF->ackno[2] = conn->rcv_nxt[2];
-  BUF->ackno[3] = conn->rcv_nxt[3];
-
-  BUF->seqno[0] = conn->snd_nxt[0];
-  BUF->seqno[1] = conn->snd_nxt[1];
-  BUF->seqno[2] = conn->snd_nxt[2];
-  BUF->seqno[3] = conn->snd_nxt[3];
+  memcpy(BUF->ackno, conn->rcv_nxt, 4);
+  memcpy(BUF->seqno, conn->snd_nxt, 4);
 
   BUF->proto    = UIP_PROTO_TCP;
-
   BUF->srcport  = conn->lport;
   BUF->destport = conn->rport;