diff --git a/include/netinet/in.h b/include/netinet/in.h
index fb628b61..f04657f3 100644
--- a/include/netinet/in.h
+++ b/include/netinet/in.h
@@ -108,46 +108,63 @@ uint16_t ntohs(uint16_t);
 #define IPPROTO_MAX      263
 
 #define IN6_IS_ADDR_UNSPECIFIED(a) \
-        (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \
-         ((uint32_t *) (a))[2] == 0 && ((uint32_t *) (a))[3] == 0)
+        (((const uint32_t *) (a))[0] == 0 && \
+         ((const uint32_t *) (a))[1] == 0 && \
+         ((const uint32_t *) (a))[2] == 0 && \
+         ((const uint32_t *) (a))[3] == 0)
 
 #define IN6_IS_ADDR_LOOPBACK(a) \
-        (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \
-         ((uint32_t *) (a))[2] == 0 && \
-         ((uint8_t *) (a))[12] == 0 && ((uint8_t *) (a))[13] == 0 && \
-         ((uint8_t *) (a))[14] == 0 && ((uint8_t *) (a))[15] == 1 )
+        (((const uint32_t *) (a))[0] == 0 && \
+         ((const uint32_t *) (a))[1] == 0 && \
+         ((const uint32_t *) (a))[2] == 0 && \
+         ((const uint8_t *) (a))[12] == 0 && \
+         ((const uint8_t *) (a))[13] == 0 && \
+         ((const uint8_t *) (a))[14] == 0 && \
+         ((const uint8_t *) (a))[15] == 1 )
 
-#define IN6_IS_ADDR_MULTICAST(a) (((uint8_t *) (a))[0] == 0xff)
+#define IN6_IS_ADDR_MULTICAST(a) (((const uint8_t *) (a))[0] == 0xff)
 
 #define IN6_IS_ADDR_LINKLOCAL(a) \
-        ((((uint8_t *) (a))[0]) == 0xfe && (((uint8_t *) (a))[1] & 0xc0) == 0x80)
+        ((((const uint8_t *) (a))[0]) == 0xfe && \
+         (((const uint8_t *) (a))[1] & 0xc0) == 0x80)
 
 #define IN6_IS_ADDR_SITELOCAL(a) \
-        ((((uint8_t *) (a))[0]) == 0xfe && (((uint8_t *) (a))[1] & 0xc0) == 0xc0)
+        ((((const uint8_t *) (a))[0]) == 0xfe && \
+         (((const uint8_t *) (a))[1] & 0xc0) == 0xc0)
 
 #define IN6_IS_ADDR_V4MAPPED(a) \
-        (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \
-         ((uint8_t *) (a))[8] == 0 && ((uint8_t *) (a))[9] == 0 && \
-         ((uint8_t *) (a))[10] == 0xff && ((uint8_t *) (a))[11] == 0xff)
+        (((const uint32_t *) (a))[0] == 0 && \
+         ((const uint32_t *) (a))[1] == 0 && \
+         ((const uint8_t *) (a))[8] == 0 && \
+         ((const uint8_t *) (a))[9] == 0 && \
+         ((const uint8_t *) (a))[10] == 0xff && \
+         ((const uint8_t *) (a))[11] == 0xff)
 
 #define IN6_IS_ADDR_V4COMPAT(a) \
-        (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \
-         ((uint32_t *) (a))[2] == 0 && ((uint8_t *) (a))[15] > 1)
+        (((const uint32_t *) (a))[0] == 0 && \
+         ((const uint32_t *) (a))[1] == 0 && \
+         ((const uint32_t *) (a))[2] == 0 && \
+         ((const uint8_t *) (a))[15] > 1)
 
 #define IN6_IS_ADDR_MC_NODELOCAL(a) \
-        (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x1))
+        (IN6_IS_ADDR_MULTICAST(a) && \
+         ((((const uint8_t *) (a))[1] & 0xf) == 0x1))
 
 #define IN6_IS_ADDR_MC_LINKLOCAL(a) \
-        (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x2))
+        (IN6_IS_ADDR_MULTICAST(a) && \
+         ((((const uint8_t *) (a))[1] & 0xf) == 0x2))
 
 #define IN6_IS_ADDR_MC_SITELOCAL(a) \
-        (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x5))
+        (IN6_IS_ADDR_MULTICAST(a) && \
+         ((((const uint8_t *) (a))[1] & 0xf) == 0x5))
 
 #define IN6_IS_ADDR_MC_ORGLOCAL(a) \
-        (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x8))
+        (IN6_IS_ADDR_MULTICAST(a) && \
+         ((((const uint8_t *) (a))[1] & 0xf) == 0x8))
 
 #define IN6_IS_ADDR_MC_GLOBAL(a) \
-        (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0xe))
+        (IN6_IS_ADDR_MULTICAST(a) && \
+         ((((const uint8_t *) (a))[1] & 0xf) == 0xe))
 
 #define __ARE_4_EQUAL(a,b) \
 	(!( (0[a]-0[b]) | (1[a]-1[b]) | (2[a]-2[b]) | (3[a]-3[b]) ))