diff --git a/src/ip6_icmp.c b/src/ip6_icmp.c
index daebec4..21224bc 100644
--- a/src/ip6_icmp.c
+++ b/src/ip6_icmp.c
@@ -100,7 +100,7 @@
     if (sendto(so->s, m->m_data + hlen, m->m_len - hlen, 0,
                (struct sockaddr *)&addr, sizeof(addr)) == -1) {
         DEBUG_MISC("icmp6_input icmp sendto tx errno = %d-%s", errno,
-                   strerror(errno));
+                   g_strerror(errno));
         icmp6_send_error(m, ICMP6_UNREACH, ICMP6_UNREACH_NO_ROUTE);
         icmp_detach(so);
     }
@@ -265,7 +265,7 @@
         } else {
             error_code = ICMP6_UNREACH_ADDRESS;
         }
-        DEBUG_MISC(" udp icmp rx errno = %d-%s", errno, strerror(errno));
+        DEBUG_MISC(" udp icmp rx errno = %d-%s", errno, g_strerror(errno));
         icmp6_send_error(so->so_m, ICMP_UNREACH, error_code);
     } else {
         icmp6_reflect(so->so_m);
@@ -583,7 +583,7 @@
 
             if (udp_attach(so, AF_INET6) == -1) {
                 DEBUG_MISC("icmp6_input udp_attach errno = %d-%s", errno,
-                           strerror(errno));
+                           g_strerror(errno));
                 sofree(so);
                 m_free(m);
                 goto end_error;
@@ -620,7 +620,7 @@
             if (sendto(so->s, icmp6_ping_msg, strlen(icmp6_ping_msg), 0,
                        (struct sockaddr *)&addr, sockaddr_size(&addr)) == -1) {
                 DEBUG_MISC("icmp6_input udp sendto tx errno = %d-%s", errno,
-                           strerror(errno));
+                           g_strerror(errno));
                 icmp6_send_error(m, ICMP6_UNREACH, ICMP6_UNREACH_NO_ROUTE);
                 udp_detach(so);
             }
diff --git a/src/ip_icmp.c b/src/ip_icmp.c
index d74d24b..d8fe7cb 100644
--- a/src/ip_icmp.c
+++ b/src/ip_icmp.c
@@ -149,8 +149,8 @@
     if (sendto(so->s, m->m_data + hlen, m->m_len - hlen, 0,
                (struct sockaddr *)&addr, sizeof(addr)) == -1) {
         DEBUG_MISC("icmp_input icmp sendto tx errno = %d-%s", errno,
-                   strerror(errno));
-        icmp_send_error(m, ICMP_UNREACH, ICMP_UNREACH_NET, 0, strerror(errno));
+                   g_strerror(errno));
+        icmp_send_error(m, ICMP_UNREACH, ICMP_UNREACH_NET, 0, g_strerror(errno));
         icmp_detach(so);
     }
 
@@ -224,7 +224,7 @@
 
             if (not_valid_socket(udp_attach(so, AF_INET))) {
                 DEBUG_MISC("icmp_input udp_attach errno = %d-%s", errno,
-                           strerror(errno));
+                           g_strerror(errno));
                 sofree(so);
                 m_free(m);
                 goto end_error;
@@ -243,7 +243,7 @@
             addr = so->fhost.ss;
             if (sotranslate_out(so, &addr) < 0) {
                 icmp_send_error(m, ICMP_UNREACH, ICMP_UNREACH_NET, 0,
-                                strerror(errno));
+                                g_strerror(errno));
                 udp_detach(so);
                 return;
             }
@@ -264,9 +264,9 @@
             if (sendto(so->s, icmp_ping_msg, strlen(icmp_ping_msg), 0,
                        (struct sockaddr *)&addr, sockaddr_size(&addr)) == -1) {
                 DEBUG_MISC("icmp_input udp sendto tx errno = %d-%s", errno,
-                           strerror(errno));
+                           g_strerror(errno));
                 icmp_send_error(m, ICMP_UNREACH, ICMP_UNREACH_NET, 0,
-                                strerror(errno));
+                                g_strerror(errno));
                 udp_detach(so);
             }
         } /* if ip->ip_dst.s_addr == alias_addr.s_addr */
@@ -537,8 +537,8 @@
         } else {
             error_code = ICMP_UNREACH_HOST;
         }
-        DEBUG_MISC(" udp icmp rx errno = %d-%s", errno, strerror(errno));
-        icmp_send_error(so->so_m, ICMP_UNREACH, error_code, 0, strerror(errno));
+        DEBUG_MISC(" udp icmp rx errno = %d-%s", errno, g_strerror(errno));
+        icmp_send_error(so->so_m, ICMP_UNREACH, error_code, 0, g_strerror(errno));
     } else {
         icmp_reflect(so->so_m);
         so->so_m = NULL; /* Don't m_free() it again! */
diff --git a/src/misc.c b/src/misc.c
index d4a7c2c..e5e2164 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -123,7 +123,7 @@
     return 0;
 
 err:
-    g_critical("slirp_socketpair(): %s", strerror(errno));
+    g_critical("slirp_socketpair(): %s", g_strerror(errno));
     if (have_valid_socket(s)) {
         closesocket(s);
     }
@@ -274,12 +274,12 @@
 
     s = slirp_socket(PF_UNIX, SOCK_STREAM, 0);
     if (not_valid_socket(s)) {
-        g_critical("open_unix(): %s", strerror(errno));
+        g_critical("open_unix(): %s", g_strerror(errno));
         return 0;
     }
 
     if (connect(s, (struct sockaddr *)&sa, sizeof(sa)) < 0) {
-        g_critical("open_unix(): %s", strerror(errno));
+        g_critical("open_unix(): %s", g_strerror(errno));
         closesocket(s);
         return 0;
     }
diff --git a/src/socket.c b/src/socket.c
index 43e5939..278bf27 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -214,7 +214,7 @@
             }
 
             DEBUG_MISC(" --- soread() disconnected, nn = %d, errno = %d-%s", nn,
-                       errno, strerror(errno));
+                       errno, g_strerror(errno));
             sofcantrcvmore(so);
 
             if (err == ECONNABORTED || err == ECONNRESET || err == ECONNREFUSED ||
@@ -577,8 +577,8 @@
             else if (errno == ENETUNREACH)
                 code = ICMP_UNREACH_NET;
 
-            DEBUG_MISC(" udp icmp rx errno = %d-%s", errno, strerror(errno));
-            icmp_send_error(so->so_m, ICMP_UNREACH, code, 0, strerror(errno));
+            DEBUG_MISC(" udp icmp rx errno = %d-%s", errno, g_strerror(errno));
+            icmp_send_error(so->so_m, ICMP_UNREACH, code, 0, g_strerror(errno));
         } else {
             icmp_reflect(so->so_m);
             so->so_m = NULL; /* Don't m_free() it again! */
@@ -599,7 +599,7 @@
             else if (errno == ENETUNREACH)
                 code = ICMP6_UNREACH_NO_ROUTE;
 
-            DEBUG_MISC(" udp icmp6 rx errno = %d-%s", errno, strerror(errno));
+            DEBUG_MISC(" udp icmp6 rx errno = %d-%s", errno, g_strerror(errno));
             icmp6_send_error(so->so_m, ICMP_UNREACH, code);
         } else {
             icmp6_reflect(so->so_m);
@@ -617,7 +617,7 @@
 #endif
 
         if (ioctlsocket(so->s, FIONREAD, &n) != 0) {
-            DEBUG_MISC(" ioctlsocket errno = %d-%s\n", errno, strerror(errno));
+            DEBUG_MISC(" ioctlsocket errno = %d-%s\n", errno, g_strerror(errno));
             return;
         }
 
@@ -654,7 +654,7 @@
         m->m_len = recvfrom(so->s, m->m_data, len, 0, (struct sockaddr *)&addr,
                             &addrlen);
         DEBUG_MISC(" did recvfrom %d, errno = %d-%s", m->m_len, errno,
-                   strerror(errno));
+                   g_strerror(errno));
         if (m->m_len < 0) {    	
             if (errno == ENOTCONN) {
                 /*
@@ -677,7 +677,7 @@
 
                     DEBUG_MISC(" rx error, tx icmp ICMP_UNREACH:%i", code);
                     icmp_send_error(so->so_m, ICMP_UNREACH, code, 0,
-                                    strerror(errno));
+                                    g_strerror(errno));
                     break;
                 case AF_INET6:
                     code = ICMP6_UNREACH_PORT;
diff --git a/src/tcp_input.c b/src/tcp_input.c
index 728c26d..5f5701a 100644
--- a/src/tcp_input.c
+++ b/src/tcp_input.c
@@ -626,7 +626,7 @@
         if ((tcp_fconnect(so, so->so_ffamily) == -1) && (errno != EAGAIN) &&
             (errno != EINPROGRESS) && (errno != EWOULDBLOCK)) {
             uint8_t code;
-            DEBUG_MISC(" tcp fconnect errno = %d-%s", errno, strerror(errno));
+            DEBUG_MISC(" tcp fconnect errno = %d-%s", errno, g_strerror(errno));
             if (errno == ECONNREFUSED) {
                 /* ACK the SYN, send RST to refuse the connection */
                 tcp_respond(tp, ti, m, ti->ti_seq + 1, (tcp_seq)0,
@@ -663,7 +663,7 @@
                     m->m_len -= sizeof(struct tcpiphdr) - sizeof(struct ip) -
                                 sizeof(struct tcphdr);
                     *ip = save_ip;
-                    icmp_send_error(m, ICMP_UNREACH, code, 0, strerror(errno));
+                    icmp_send_error(m, ICMP_UNREACH, code, 0, g_strerror(errno));
                     break;
                 case AF_INET6:
                     m->m_data += sizeof(struct tcpiphdr) -
diff --git a/src/udp.c b/src/udp.c
index ae4d954..eb20bbb 100644
--- a/src/udp.c
+++ b/src/udp.c
@@ -179,7 +179,7 @@
          */
         so = socreate(slirp, IPPROTO_UDP);
         if (not_valid_socket(udp_attach(so, AF_INET))) {
-            DEBUG_MISC(" udp_attach errno = %d-%s", errno, strerror(errno));
+            DEBUG_MISC(" udp_attach errno = %d-%s", errno, g_strerror(errno));
             sofree(so);
             goto bad;
         }
@@ -229,8 +229,8 @@
         m->m_len += iphlen;
         m->m_data -= iphlen;
         *ip = save_ip;
-        DEBUG_MISC("udp tx errno = %d-%s", errno, strerror(errno));
-        icmp_send_error(m, ICMP_UNREACH, ICMP_UNREACH_NET, 0, strerror(errno));
+        DEBUG_MISC("udp tx errno = %d-%s", errno, g_strerror(errno));
+        icmp_send_error(m, ICMP_UNREACH, ICMP_UNREACH_NET, 0, g_strerror(errno));
         goto bad;
     }
 
diff --git a/src/udp6.c b/src/udp6.c
index ea5a5ba..f38c9bd 100644
--- a/src/udp6.c
+++ b/src/udp6.c
@@ -97,7 +97,7 @@
         /* If there's no socket for this packet, create one. */
         so = socreate(slirp, IPPROTO_UDP);
         if (not_valid_socket(udp_attach(so, AF_INET6))) {
-            DEBUG_MISC(" udp6_attach errno = %d-%s", errno, strerror(errno));
+            DEBUG_MISC(" udp6_attach errno = %d-%s", errno, g_strerror(errno));
             sofree(so);
             goto bad;
         }
@@ -137,7 +137,7 @@
         m->m_len += iphlen;
         m->m_data -= iphlen;
         *ip = save_ip;
-        DEBUG_MISC("udp tx errno = %d-%s", errno, strerror(errno));
+        DEBUG_MISC("udp tx errno = %d-%s", errno, g_strerror(errno));
         icmp6_send_error(m, ICMP6_UNREACH, ICMP6_UNREACH_NO_ROUTE);
         goto bad;
     }
