diff --git a/extmod/modlwip.c b/extmod/modlwip.c
index afe5ca9e7396fd56a7daf66ea0c832a76134ac6a..fdbbb08bcde648c3dcd6ffb33bfe543d6e1f051e 100644
--- a/extmod/modlwip.c
+++ b/extmod/modlwip.c
@@ -199,8 +199,12 @@ typedef struct _lwip_socket_obj_t {
     uint8_t domain;
     uint8_t type;
 
-    // 0 = unconnected, 1 = connecting, 2 = connected, 3 = other side closed
-    int8_t connected;
+    #define STATE_NEW 0
+    #define STATE_CONNECTING 1
+    #define STATE_CONNECTED 2
+    #define STATE_PEER_CLOSED 3
+    // Negative value is lwIP error
+    int8_t state;
 } lwip_socket_obj_t;
 
 static inline void poll_sockets(void) {
@@ -231,7 +235,7 @@ STATIC void _lwip_tcp_error(void *arg, err_t err) {
     lwip_socket_obj_t *socket = (lwip_socket_obj_t*)arg;
 
     // Pass the error code back via the connection variable.
-    socket->connected = err;
+    socket->state = err;
     // If we got here, the lwIP stack either has deallocated or will deallocate the pcb.
     socket->pcb.tcp = NULL;
 }
@@ -240,7 +244,7 @@ STATIC void _lwip_tcp_error(void *arg, err_t err) {
 STATIC err_t _lwip_tcp_connected(void *arg, struct tcp_pcb *tpcb, err_t err) {
     lwip_socket_obj_t *socket = (lwip_socket_obj_t*)arg;
 
-    socket->connected = 2;
+    socket->state = STATE_CONNECTED;
     return ERR_OK;
 }
 
@@ -264,7 +268,7 @@ STATIC err_t _lwip_tcp_recv(void *arg, struct tcp_pcb *tcpb, struct pbuf *p, err
 
     if (p == NULL) {
         // Other side has closed connection.
-        socket->connected = 3;
+        socket->state = STATE_PEER_CLOSED;
         return ERR_OK;
     } else if (socket->incoming.pbuf != NULL) {
         // No room in the inn, let LWIP know it's still responsible for delivery later
@@ -378,7 +382,7 @@ STATIC mp_uint_t lwip_tcp_send(lwip_socket_obj_t *socket, const byte *buf, mp_ui
 // Helper function for recv/recvfrom to handle TCP packets
 STATIC mp_uint_t lwip_tcp_receive(lwip_socket_obj_t *socket, byte *buf, mp_uint_t len, int *_errno) {
 
-    if (socket->connected == 3) {
+    if (socket->state == STATE_PEER_CLOSED) {
         return 0;
     }
 
@@ -463,7 +467,7 @@ STATIC mp_obj_t lwip_socket_make_new(mp_obj_t type_in, mp_uint_t n_args,
 
     socket->incoming.pbuf = NULL;
     socket->timeout = -1;
-    socket->connected = 0;
+    socket->state = STATE_NEW;
     socket->leftover_count = 0;
     return socket;
 }
@@ -489,7 +493,7 @@ STATIC mp_obj_t lwip_socket_close(mp_obj_t self_in) {
         //case MOD_NETWORK_SOCK_RAW: raw_remove(socket->pcb.raw); break;
     }
     socket->pcb.tcp = NULL;
-    socket->connected = -16; // EBADF
+    socket->state = -16; // EBADF
     if (socket->incoming.pbuf != NULL) {
         if (!socket_is_listener) {
             pbuf_free(socket->incoming.pbuf);
@@ -599,7 +603,7 @@ STATIC mp_obj_t lwip_socket_accept(mp_obj_t self_in) {
     socket2->type = MOD_NETWORK_SOCK_STREAM;
     socket2->incoming.pbuf = NULL;
     socket2->timeout = socket->timeout;
-    socket2->connected = 2;
+    socket2->state = STATE_CONNECTED;
     socket2->leftover_count = 0;
     tcp_arg(socket2->pcb.tcp, (void*)socket2);
     tcp_err(socket2->pcb.tcp, _lwip_tcp_error);
@@ -636,8 +640,8 @@ STATIC mp_obj_t lwip_socket_connect(mp_obj_t self_in, mp_obj_t addr_in) {
     err_t err = ERR_ARG;
     switch (socket->type) {
         case MOD_NETWORK_SOCK_STREAM: {
-            if (socket->connected != 0) {
-                if (socket->connected == 2) {
+            if (socket->state != STATE_NEW) {
+                if (socket->state == STATE_CONNECTED) {
                     nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(EALREADY)));
                 } else {
                     nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(EINPROGRESS)));
@@ -645,11 +649,10 @@ STATIC mp_obj_t lwip_socket_connect(mp_obj_t self_in, mp_obj_t addr_in) {
             }
             // Register our recieve callback.
             tcp_recv(socket->pcb.tcp, _lwip_tcp_recv);
-            // Mark us as "connecting"
-            socket->connected = 1;
+            socket->state = STATE_CONNECTING;
             err = tcp_connect(socket->pcb.tcp, &dest, port, _lwip_tcp_connected);
             if (err != ERR_OK) {
-                socket->connected = 0;
+                socket->state = STATE_NEW;
                 nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(error_lookup_table[-err])));
             }
             socket->peer_port = (mp_uint_t)port;
@@ -658,20 +661,20 @@ STATIC mp_obj_t lwip_socket_connect(mp_obj_t self_in, mp_obj_t addr_in) {
             if (socket->timeout != -1) {
                 for (mp_uint_t retries = socket->timeout / 100; retries--;) {
                     mp_hal_delay_ms(100);
-                    if (socket->connected != 1) break;
+                    if (socket->state != STATE_CONNECTING) break;
                 }
-                if (socket->connected == 1) {
+                if (socket->state == STATE_CONNECTING) {
                     nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(ETIMEDOUT)));
                 }
             } else {
-                while (socket->connected == 1) {
+                while (socket->state == STATE_CONNECTING) {
                     mp_hal_delay_ms(100);
                 }
             }
-            if (socket->connected == 2) {
+            if (socket->state == STATE_CONNECTED) {
                err = ERR_OK;
             } else {
-               err = socket->connected;
+               err = socket->state;
             }
             break;
         }
@@ -695,8 +698,8 @@ STATIC mp_obj_t lwip_socket_send(mp_obj_t self_in, mp_obj_t buf_in) {
 
     if (socket->pcb.tcp == NULL) {
         // not connected
-        _errno = error_lookup_table[-(socket->connected)];
-        socket->connected = -16;
+        _errno = error_lookup_table[-(socket->state)];
+        socket->state = -16;
         nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(_errno)));
     }
 
@@ -728,8 +731,8 @@ STATIC mp_obj_t lwip_socket_recv(mp_obj_t self_in, mp_obj_t len_in) {
 
     if (socket->pcb.tcp == NULL) {
         // not connected
-        _errno = error_lookup_table[-(socket->connected)];
-        socket->connected = -16;
+        _errno = error_lookup_table[-(socket->state)];
+        socket->state = -16;
         nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(_errno)));
     }
 
@@ -766,8 +769,8 @@ STATIC mp_obj_t lwip_socket_sendto(mp_obj_t self_in, mp_obj_t data_in, mp_obj_t
 
     if (socket->pcb.tcp == NULL) {
         // not connected
-        _errno = error_lookup_table[-(socket->connected)];
-        socket->connected = -16;
+        _errno = error_lookup_table[-(socket->state)];
+        socket->state = -16;
         nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(_errno)));
     }
 
@@ -802,8 +805,8 @@ STATIC mp_obj_t lwip_socket_recvfrom(mp_obj_t self_in, mp_obj_t len_in) {
 
     if (socket->pcb.tcp == NULL) {
         // not connected
-        _errno = error_lookup_table[-(socket->connected)];
-        socket->connected = -16;
+        _errno = error_lookup_table[-(socket->state)];
+        socket->state = -16;
         nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(_errno)));
     }